django默认用户的外键值

时间:2011-01-24 13:19:30

标签: python django mysql-error-1067

我已阅读http://www.b-list.org/weblog/2006/jun/06/django-tips-extending-user-model/,但仍然无法使用ForeignKey为产品列表中的用户迁移新的数据库架构

我的代码的简化版本是:

from django.contrib.auth.models import User
# other imports

class Product(models.Model):

 author = models.ForeignKey(User)
 # other product fields..

但是当我尝试迁移到南方时,这可能是问题,因为我的用户数据库不是由南方处理的(原谅我的新手)我得到的错误是需要设置默认值:< / p>

_mysql_exceptions.OperationalError: (1067, "Invalid default value for 'author_id'")

谁能解释我做错了什么?理想情况下,我不想要用户的默认值,或者至少为null,false或0(但这似乎不起作用)..

非常感谢,

亚当

2 个答案:

答案 0 :(得分:0)

如果您希望author的值为空,则需要使用null=True定义ForeignKey。您可能也需要blank=True,因为它控制Django表单中的验证。

author = models.ForeignKey(User, null=True, blank=True)

答案 1 :(得分:0)

完成简单的路线并完全重置产品表,并从头开始迁移工作。不确定我学到了什么(除了如何重置应用程序)!