django 模型中的可选字段
Posted
技术标签:
【中文标题】django 模型中的可选字段【英文标题】:optional fields in django models 【发布时间】:2013-04-27 07:18:07 【问题描述】:我在 django 中有以下模型。
class Link(models.Model):
name = models.CharField(max_length=100)
url = models.CharField(max_length=100)
tag = models.CharField(max_length=100)
def __unicode__(self):
return self.name
我需要 url 字段是可选的。我该怎么做?
【问题讨论】:
【参考方案1】:添加属性blank=True
。或者,您还可以使用 null=True
使该字段为 NULLable。
【讨论】:
【参考方案2】:不建议将null=True
设置为CharField
,您可以从 django 文档中看到:
避免在基于字符串的字段(例如 CharField 和 TextField)上使用 null。如果基于字符串的字段具有 null=True,这意味着它有两个可能的“无数据”值:NULL 和空字符串。在大多数情况下,“无数据”有两个可能的值是多余的; Django 约定是使用空字符串,而不是 NULL。一个例外是当 CharField 同时设置了 unique=True 和 blank=True 时。在这种情况下,需要 null=True 以避免在保存具有空白值的多个对象时违反唯一约束。
所以我会推荐这个配置:
name = models.CharField(max_length=100, blank=True, default='')
【讨论】:
好点。谢谢。以上是关于django 模型中的可选字段的主要内容,如果未能解决你的问题,请参考以下文章