django-models数据库排序规则问题:声明一个支持unicode的字段?

时间:2013-01-11 06:38:07

标签: django django-models collation django-database

我遇到了这个问题。当我无法将unicode字符串分配给models.CharField时。

DatabaseError: (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")

我找到this solution,但它似乎对我不起作用。数据库返回此错误:

Error Code: 1025. Error on rename of './test_database/#sql-272e_1ba' to './test_database/[MY_TABLE_NAME]' (errno: 150)

此外,所有这些解决方案似乎仅在创建表后才起作用,或者修改python manage.py sql APP_NAME输出并手动创建表。

有没有办法解决这个问题,最初在python代码中声明django模型,所以manage.py syncdb只会产生正确的表格?

1 个答案:

答案 0 :(得分:0)

这似乎是您的数据库配置问题,而不是Django。我的猜测是,无论你使用什么数据库,它都配置为使用latin1_swidish_ci用于新表。您可以hook syncdb并在那里更改表格,但我认为最好直接修复数据库配置。