使用双下划线直接更新 Django 中的外键字段?

Using double underscore to directly update foreign key's field in Django?

我在 Django 中使用双下划线过滤模型或从中获取值,如下所示:

# filtering model
furthers = myModel.objects.filter(foreignKeyField__furtherField=value)

# getting values
furtherField = myModel.objects.get(id=10).values("foreignKeyField__furtherField")

但是当我尝试像这样使用带有双下划线的 update() 方法时:

myModel.objects.filter(id=10).update("foreignKeyField__furtherField")

我收到一个错误:

django.core.exceptions.FieldDoesNotExist: myModel has no field named 'foreignKeyField__furtherField'

我查阅了有关此的文档,但既没有 update() 方法的双下划线用法示例,也没有我不能这样使用它的词。那么我们可以说update()方法不能这样使用吗?

你不能用这种方式更新,但你可以用其他方式更新它

你应该像这样使用反向外键关系

ForeignModel.objects.filter(mymodel_set__id=10).update(foreign_key_field=some_value)