вложениями(связи с другими моделями). Поэтому приходится переписывать crerate,update. С create все норм, теперь я хочу прописать апдейт для патч запроса. Теперь вопро, кто нибудь знает изящный способ понять какое поле на изменеие пришло в патч? Без ифов например, потому что ифами чет совсем некрасиво получается.
В validated_data приходят только те филды, которые были изменены
да, спасибо. Но они же приходят в виде словаря где ключ - имя поля. Вот как мне нужные значения в нужные поля распределить без ифов? вот у меня в моделе 20 полей, я ж не буду писать 20 ифов типа: if "name" in validated_data: instance.name=validated_data["name"]
Ну можно так name = validated_data.get("name", instance.name) если такой ключ есть в дикте, то будет новое значение, а иначе берется значение текущего. Но если именно партиал, можно в цикле по филдам, которые пришли в validated_data
да, воть буду щас пытаться что то сделать. А вот в циклн, как соотнести название филда и сам филд? опять же без лишних ифов. вот у меня ключ "name", не подскажете, как соотнести его с instance.name?
for attr, value in validated_data.items(): setattr(instance, attr, value) instance.save() Можно как то так, т.е. он будет сохранять только то, что передали, а не все поля
оп, вот сейчас от всей души спасибо
Обсуждают сегодня