django模型中的可选字段

eat*_*hil 24 django model

我在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
Run Code Online (Sandbox Code Playgroud)

我需要url字段是可选的.我该怎么做呢?

mip*_*adi 47

添加属性blank=True.或者,您也可以将字段设为NULLable null=True.


Ada*_*dam 18

设置null=TrueCharField不推荐,因为你可以从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='')