我在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()方法不能这样使用吗?
不能按这种方式更新但可以按其他方式更新
你应该像这样使用反向外键关系
ForeignModel.objects.filter(mymodel_set__id=10).update(foreign_key_field=some_value)