如何通过外键字段中的数据更新Django模型?

时间:2019-04-29 20:56:30

标签: django django-models

我正在尝试将某些数据从一个表迁移到另一个表,并且我具有以下脚本:

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?我是否必须遍历每个对象并以这种方式更新?

0 个答案:

没有答案