【问题标题】:ValueError: Field 'id' expected a number but got 'asd'ValueError:字段“id”需要一个数字但得到“asd”
【发布时间】:2020-08-24 19:24:54
【问题描述】:

我已经查找了其他问题,但它们只是不同的错误。

我一直在开发一个简单的论坛应用程序,现在我来到了可以评论主题的部分。但后来我意识到我已经错过了评论中与主题的 ForeignKey 关系。然后,我创建了一个新的 ForeignKey 但像往常一样,它要求我提供一个默认值。我正要添加 Blank 和 Null tr​​ue,但随后我的手自动将asd 作为默认值。现在,即使我成功使用 makemigrations 进行迁移,我在创建 migrate 时也收到此错误,我该如何解决?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    您必须编辑在 makemigration 之后创建的迁移文件。迁移文件中有字段。

    例如:

    field=models.ForeignKey(default="asd")
    

    您应该编辑此部分并重新运行migrate

    【讨论】:

    • 我不想让我的头脑为此大惊小怪,因为我没有添加任何与该模型相关的数据。我刚刚删除了迁移中与 cmets 相关的所有内容。但是,是的,事实是,它解决了,感谢您让我学习。
    【解决方案2】:

    ForeignKey 是表中的一行,不知何故是整数的子集。因此,如果您在将数据插入该模型(没有默认值和空值)之后将ForeignKey 添加到该模型,它将询问您如何添加在表数据中不为空的这一行,并且因为该字段是整数类型您应该在该字段中输入一个有效的整数(不是字符串或任何其他类型)。请注意,您将作为默认值输入的整数应该是一个有效的选择(即具有该整数作为主键的 topic 记录或您想要将 ForeignKey 连接到它的相关表的主键存在)并且如果不是你不能运行migrate,因为这一次Django会引发IntegrityError

    【讨论】:

      猜你喜欢
      • 2020-08-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2021-12-02
      • 2021-12-07
      • 1970-01-01
      • 2022-08-23
      相关资源
      最近更新 更多