gpt4 book ai didi

python - 将 TextField() 迁移到 JSONField()

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:47 26 4
gpt4 key购买 nike

我的模型中曾经有一个 TextField(blank=True, default='')。由于项目需求的一些变化,现在存储一个字典成为一个更好的主意,如下所示:

instructions {
wait_time: {
active: True
message: 'This is a standard message'
}
}

所以我将其更改为 JSONField:JSONField(blank=True, null=True)。序列化器中进行了更改,并且它通过了该特定字段的测试。当我尝试运行套装的其余部分时,出现以下错误:

AssertionError: {u'non_field_errors': [u'null value in column "instructions" violates not-null constraint\n

这很有意义,因为 TextField 被设置为 null=False。该字段现在应该接受空值。我想象 makemigrationsmigrate 可以完成这项工作。

django.db.utils.DataError: invalid input syntax for type json
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1:

我的第一个想法是关于之前为 TextField() 设置的默认值。为了测试它,我将迁移恢复到创建之前的那一刻,删除新的迁移“mademigrations”并运行测试。由于一些奇怪的原因,我仍然得到:“违反非空约束”错误。这让我认为问题不在于之前在 TextField() 设置为 null=False 中。如果是这样的话,这两个问题可能彼此无关。不管怎样,我不知道如何继续。

最佳答案

我也遇到了完全相同的问题。
这是因为 TextField 设置为 null=True
只需将 NULL 字段更改为 "null",它就会像魅力一样发挥作用。

关于python - 将 TextField() 迁移到 JSONField(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54726949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com