What is the reason for the following error? when i try to filter with:
if MyObject.objects.filter(location = aDictionary['address']):
where location is defined as:
location = models.CharField(max_length=100, blank=True, default='')
I get the following error when aDictionary['address'] contains a string with a non-alphanumeric character (for example Kīhei):
File "/usr/lib/pymodules/python2.6/MySQLdb/connections.py", line 35, in defaul
terrorhandler
raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1267, "Illegal mix of collations (latin1_sw
edish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
Alter the database in MySQL like so:
ALTER TABLE foo CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
When creating a new database, remember to create with the right collate settings:
CREATE DATABASE foo CHARACTER SET utf8 COLLATE utf8_general_ci;
More discussion here.
Python is using Unicode strings, and your database is not. Change your database collation to use utf8 and you should be fine.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With