'Using double underscore to directly update foreign key's field in Django?
I am using double underscore to filter a model or get values from it in Django like this:
# filtering model
furthers = myModel.objects.filter(foreignKeyField__furtherField=value)
# getting values
furtherField = myModel.objects.get(id=10).values("foreignKeyField__furtherField")
But when I try to use update() method with double underscore like this:
myModel.objects.filter(id=10).update("foreignKeyField__furtherField")
I get an error:
django.core.exceptions.FieldDoesNotExist: myModel has no field named 'foreignKeyField__furtherField'
I looked up documentations about this but there is neither usage example of double underscore for update() method nor a word I cant use it like this way. So could we say update() method cannot be used like this?
Solution 1:[1]
You can't update this way but you can update it other way round
You should use reverse foreign key relationship like this
ForeignModel.objects.filter(mymodel_set__id=10).update(foreign_key_field=some_value)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Deepak Tripathi |
