Python Django:ForeignKey的值可以是None吗?

Python Django:ForeignKey的值可以是None吗?,python,database,django,foreign-keys,Python,Database,Django,Foreign Keys,我有一个名为SimplePage的模型,其中有一行: category = models.ForeignKey('Category', related_name='items', blank=True, null=True) 我假设这将允许我拥有没有类别的SimplePage实例 但出于某种原因,当我尝试在Admin中创建一个没有类别的SimplePage时,我得到: IntegrityError at /admin/sitehelpe

我有一个名为
SimplePage
的模型,其中有一行:

category = models.ForeignKey('Category', related_name='items',
                             blank=True, null=True)
我假设这将允许我拥有没有类别的SimplePage实例

但出于某种原因,当我尝试在Admin中创建一个没有类别的SimplePage时,我得到:

IntegrityError at /admin/sitehelpers/simplepage/add/
sitehelpers_simplepage.category_id may not be NULL

这是什么?

可能是您在对该模型执行
syncdb
之后添加了
null=True
属性吗?Django不会更改数据库表,只会创建它们。如果该列允许
NULL
,请检查您的数据库,并手动更改它


编辑:从Django 1.7开始,这个答案和注释不再有效,因为Django获得了一个功能齐全的功能。

记住孩子们:Django只会创建不存在的表或列。它永远不会为你改变桌子。任何反映模型更改所需的表格更改都必须由您手动完成!我实际上运行了syncdb,但没有任何帮助。有效的方法是删除数据库,然后执行syncdb。@酷,RR,synack关于syncdb创建但不修改表的评论对您有什么影响。我希望syncdb对此给出警告。它是否说syncdb不会给出警告?