我有这个模型允许外键给用户空值。 Django的
class Vacancy(models.Model):
user = models.ForeignKey(User, null=True, blank=True, default = None)
name = models.CharField(max_length=64)
当管理员我试图创造一个空缺没有用户。它会抛出一个错误“club_vacancy.user_id可能不是NULL”。 我做错什么了吗?
我有这个模型允许外键给用户空值。 Django的
class Vacancy(models.Model):
user = models.ForeignKey(User, null=True, blank=True, default = None)
name = models.CharField(max_length=64)
当管理员我试图创造一个空缺没有用户。它会抛出一个错误“club_vacancy.user_id可能不是NULL”。 我做错什么了吗?
club_vacancy.user_id may not be NULL
看起来非常像从数据库中的错误,而不是从Django的。
它似乎最有可能你运行manage.py syncdb
后添加null=True
。您需要修改数据库模式以允许该列中的空值。
你需要重置你的数据库表(因为只是执行syncdb不更新被alredy与空创建的字段= FALSE)
./manage.py重置your_app
或有一些数据你不想松散地使用SQL命令来删除NOT NULL标志
除了南方以外,另一种选择是使用django进行模式更改。
http://code.google.com/p/django-evolution/
进行dB变化之前安装它。然后运行
python manage.py evolve --hint --execute
确保如果添加了一个新的领域,你允许空值(null=True
),或者演变会给你一个错误消息。
嗯,我跑前执行syncdb后,我加入空=真。我应该如何修改我的分贝? – barin 2009-11-28 20:09:29
执行syncdb不修改已经存在的表。删除表并再次运行syncdb,或手动修改数据库,或使用迁移应用程序。 – 2009-11-28 20:52:25
迁移应用程式,例如“南” – panchicore 2009-11-28 21:47:42