【问题标题】:Django ForeignKey created empty?Django ForeignKey 创建为空?
【发布时间】:2010-04-16 03:22:58
【问题描述】:

这似乎很基本,我一定遗漏了一些东西,但无论如何……

有两个这样的模型:

class School(models.Model):
    name    = models.CharField("Official School Name", max_length=128)
    address = models.TextField("Address of the School", max_length=256)
    mascot  = models.CharField("Name of the School Mascot", max_length=128)

class StudentProfile(models.Model):
    name   = models.CharField(max_length=128)
    school = models.ForeignKey(School)

如果学生是在学校之前创建的,我如何给“学校”一个默认的空值?是 blank 还是 null 还是 what

谢谢!

【问题讨论】:

    标签: django foreign-keys


    【解决方案1】:

    null 如果您希望数据库允许关系为空,blank 如果您不希望 Django 管理站点抱怨它为空。

    来自关于“空白”的文档:

    "请注意,这与 null 不同。null 纯粹与数据库相关,而空白与验证相关。如果字段具有 blank=True,则 Django 管理站点上的验证将允许输入空值。如果字段有空白=假,该字段将是必需的。”

    简而言之,您可能两者都想要。

    【讨论】:

    • 是的,如果是可选的,我通常将 FK 设置为两者。
    • 好的,我之前尝试过。我会运行 manage.py flush 但显然这还不足以更新数据库。改变它的唯一方法是删除 db 文件并运行 manage.py syncdb。
    • syncdb 不会更改表,它只会创建它们。如果你想修改模型,你必须手动进行,或者使用类似south.aeracode.org
    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多