Django:ForeignKey的值可以是None吗?

Ram*_*hum 4 python database django foreign-keys

我有一个模型SimplePage,我有这条线:

category = models.ForeignKey('Category', related_name='items',
                             blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

我假设这将允许我有没有类别的SimplePage实例.

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

IntegrityError at /admin/sitehelpers/simplepage/add/
sitehelpers_simplepage.category_id may not be NULL
Run Code Online (Sandbox Code Playgroud)

这是什么?

Ben*_*end 9

是否可能是null=Truesyncdb为该模型执行后添加了该属性?Django不会更改数据库表,只会创建它们.检查数据库是否NULL允许该列并手动更改.

编辑:从Django 1.7开始,这个答案和评论不再有效,因为Django获得了一个功能齐全的迁移框架.

  • 记住孩子们:Django只会创建表或列,如果它们不存在的话.永远不会为你换一张桌子.为反映模型更改所需的任何表格更改都必须由您手动完成! (4认同)
  • 我实际上运行了syncdb,它没有帮助.有效的是删除数据库然后执行syncdb. (2认同)