43

我在 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 字段是可选的。我该怎么做呢?

4

2 回答 2

74

添加属性blank=True。或者,您还可以使用 使字段为 NULLable null=True

于 2013-05-02T23:53:11.650 回答
38

不建议设置null=Truefor ,正如您从 django 文档中看到的那样:CharField

避免在基于字符串的字段(例如 CharField 和 TextField)上使用 null。如果基于字符串的字段具有 null=True,这意味着它有两个可能的“无数据”值:NULL 和空字符串。在大多数情况下,“无数据”有两个可能的值是多余的;Django 约定是使用空字符串,而不是 NULL。一个例外是当 CharField 同时设置了 unique=True 和 blank=True 时。在这种情况下,需要 null=True 以避免在保存具有空白值的多个对象时违反唯一约束。

所以我会推荐这个配置:

name = models.CharField(max_length=100, blank=True, default='')

于 2017-05-30T21:44:19.203 回答