Django: ForeignKey的值可以为None吗?
我有一个叫做 SimplePage
的模型,其中有这一行:
category = models.ForeignKey('Category', related_name='items',
blank=True, null=True)
我以为这样可以让我创建没有分类的 SimplePage 实例。
但是出于某种原因,当我在管理后台尝试创建一个没有分类的 SimplePage 时,我得到了:
IntegrityError at /admin/sitehelpers/simplepage/add/
sitehelpers_simplepage.category_id may not be NULL
这是什么情况?
1 个回答
9
你是不是在对那个模型执行了 syncdb
之后才加上了 null=True
这个属性?Django 不会自动修改数据库表,只会创建新的表。你可以去数据库里检查一下,看看那个列是否允许为 NULL
,如果不允许的话,你需要手动去改一下。
编辑:从 Django 1.7 开始,这个回答和评论就不太适用了,因为 Django 增加了一个功能齐全的 迁移框架。