我正在尝试将某些数据从一个表迁移到另一个表,并且我具有以下脚本:
def forward_func(apps, schema_editor):
targetModel = apps.get_model("target", "some_target")
targetModel.objects.all().update(a='other__table__a')
两个字段均为布尔值,并且原始表中的数据没有问题并且具有正确的类型。
由于某种原因,我收到此消息:
ValidationError: [u"'other__table__a' value must be either True or False."]
从django文档(v1.11)中,我找不到真正直接谈论此话题的主题,但是我已经找到了
但是,与filter和exclude子句中的F()对象不同,在更新中使用F()对象时,您不能引入联接-您只能引用要更新的模型本地的字段。如果尝试使用F()对象引入联接,则会引发FieldError:
# This will raise a FieldError >>> Entry.objects.update(headline=F('blog__name'))
这是否意味着我无法使用前键调用.update
?我是否必须遍历每个对象并以这种方式更新?