【问题标题】:In Django, why does this error say that my column can't be null?在 Django 中,为什么这个错误说我的列不能为空?
【发布时间】:2010-02-23 01:16:00
【问题描述】:
picture_url = models.CharField(max_length=2000)

【问题讨论】:

    标签: python mysql database django


    【解决方案1】:

    如果该列可以为空,则需要添加null=True

    picture_url = models.CharField(max_length=2000, null=True)
    

    【讨论】:

    【解决方案2】:

    默认字段将null 设置为False 试试这个

    picture_url = models.CharField(max_length=2000, blank=True)
    

    http://docs.djangoproject.com/en/1.1/ref/models/fields/#null

    【讨论】:

    • 我认为这不对。他想在列中放入空值,但数据库架构不匹配。 blank=True 说“如果你不给我任何东西,我会在这里放一个空值”。 null=True 表示“此列可以为空”。
    • 这会起作用,但 Django 规范说不要在基于字符串的值上使用 null=True。相反,该字段至少应设置为空字符串。我不确定后果是什么,但这就是文档所说的。 docs.djangoproject.com/en/1.1/ref/models/fields/#null
    • » 本身并没有任何“影响”,但总的来说这被认为是个坏主意,因为现在有两种表示“无数据”的方法(null"",空细绳)。但是,我发现这种区别通常很有用:null 可以表示 没有数据 存在,而 "" 表示数据存在,但没有任何价值。例如,在完全没有中间名的文化中,对于某些人来说,middle_name 列可能是 null;但在确实有中间名的不同文化中,对于没有中间名的人来说,此列可能只是空白。
    猜你喜欢
    • 2018-11-20
    • 2011-09-12
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多