我可以在 Django 模型中使外键字段成为可选的吗

我有以下密码:

subject      = models.ForeignKey(subjects)
location     = models.ForeignKey(location)
publisher    =  models.ForeignKey(publisher)

有可能我不会拥有这些书的全部三个价值。有时我可能不知道主题或地点,或出版商。在这种情况下,我想让它们空着。

但是如果值存在,那么我需要一个选择框来选择它们。这可能吗?

77944 次浏览

当然,只需为每个希望保持可选的字段添加 blank=True, null=True即可

subject = models.ForeignKey(subjects, blank=True, null=True)

为了实现这一点,on_delete参数与 blank=Truenull=True一起是必要的,如果您这样做会更好。

subject = models.ForeignKey(subjects, on_delete=models.SET_NULL, blank=True, null=True)