Использование двойного подчеркивания для прямого обновления поля внешнего ключа в 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(), ни слова I can't use it like this way. Так можно ли сказать, что метод update() не может быть использован таким образом?
Вы не можете обновлять таким образом, но можете обновлять другим способом
Вы должны использовать обратное отношение внешнего ключа следующим образом
ForeignModel.objects.filter(mymodel_set__id=10).update(foreign_key_field=some_value)