我有这个代码
subject = models.ForeignKey(subjects)
location = models.ForeignKey(location)
publisher = models.ForeignKey(publisher)
我并不总是可能拥有三种价值的书籍。所以有时如果我不知道主题、地点或出版商。然后我想让它们空着
但如果我有,那么我需要选择框来选择。有没有可能
当然,只需为您希望保持可选的每个字段添加 blank=True, null=True
,例如
subject = models.ForeignKey(subjects, blank=True, null=True)
为了实现这一点,on_delete
参数与 blank=True
和 null=True
一起是必需的,如果您这样做会更好。
subject = models.ForeignKey(subjects, on_delete=models.SET_NULL, blank=True, null=True)
null=True
subject=models.ForeignKey(subjects, on_delete=models.CASCADE, default=None, blank=True, null=True)
字段.null
如果为 True,Django 会将空值作为 NULL 存储在数据库中。默认为假。
避免在基于字符串的字段(例如 CharField 和 TextField)上使用 null。如果基于字符串的字段具有 null=True,这意味着它有两个可能的“无数据”值:NULL 和空字符串。在大多数情况下,“无数据”有两个可能的值是多余的; Django 约定是使用空字符串,而不是 NULL。一个例外是当 CharField 同时设置了 unique=True 和 blank=True 时。在这种情况下,需要 null=True 以避免在保存具有空白值的多个对象时违反唯一约束。
不定期副业成功案例分享
null=True
就足够了。blank=True
对于表单验证很重要。它将允许在此字段中输入一个空字符串作为用户输入。null=True
将允许数据库列中的 NULL 值。blank=True, null=True
但现在应用了迁移,是否还需要其他东西?我有这种情况,虽然架构看起来不错,但管理表单不允许空白。其他允许空白的 FK 最初可以工作,但我看不出有什么区别。