Size: a a a

Django [ru] #STAY HOME

2020 March 17

M

Melis in Django [ru] #STAY HOME
Sergey N.
не могу понять, почему-то не обновляется модель новыми данными при запросе patch. Все данные приходят, их видно в validated_data сериализатора. Но с 200 ответом приходят без новых данных. Принудительно описать update для сериализатора?
Все данные приходят, их видно в validated_data сериализатора откуда знаешь? ты что-то делаешь до сохранение или переписал метод patch\save\...?
источник

SN

Sergey N. in Django [ru] #STAY HOME
через дебаг вижу их
источник

SN

Sergey N. in Django [ru] #STAY HOME
источник

M

Melis in Django [ru] #STAY HOME
user = validated_data.pop('user', None) - что это такое?
источник

M

Melis in Django [ru] #STAY HOME
откуда user в validate_data?
источник

SN

Sergey N. in Django [ru] #STAY HOME
user = models.OneToOneField в моделе
источник

M

Melis in Django [ru] #STAY HOME
user = validated_data.pop('user', None)
if user:
   ....

это условие не выполняется
источник

M

Melis in Django [ru] #STAY HOME
так как в validated_data нету поле user
источник

SN

Sergey N. in Django [ru] #STAY HOME
есть, выполняется
источник

SN

Sergey N. in Django [ru] #STAY HOME
источник

M

Melis in Django [ru] #STAY HOME
эм, окей, но понятие не имею от куда он у тебя взялся.
ок, но метод update в сериализаторе у тебя нечего не делает
user.save() - там нечего ему обновлять
источник

SN

Sergey N. in Django [ru] #STAY HOME
а как надо ему обновить новые данные? как это описать
источник

SN

Sergey N. in Django [ru] #STAY HOME
не каждое же поле описывать
источник

M

Melis in Django [ru] #STAY HOME
попробуй вообще убрать метод update (твой) с сериализатора
источник

M

Melis in Django [ru] #STAY HOME
аа, у тебя там read_only у всех полей
источник

M

Melis in Django [ru] #STAY HOME
Melis
попробуй вообще убрать метод update (твой) с сериализатора
он максимум у тебя бесполезный
источник

SN

Sergey N. in Django [ru] #STAY HOME
да пробовал уже...)
источник

M

Melis in Django [ru] #STAY HOME
Melis
аа, у тебя там read_only у всех полей
...
источник

DT

Dan Tyan in Django [ru] #STAY HOME
email: serializers.CharField = serializers.CharField(source='user.email', read_only=True)
   full_name: serializers.CharField = serializers.CharField(source='user.full_name', read_only=True)
   last_name: serializers.CharField = serializers.CharField(source='user.last_name', read_only=True)
   first_name: serializers.CharField = serializers.CharField(source='user.first_name', read_only=True)
   middle_name: serializers.CharField = serializers.CharField(source='user.middle_name', read_only=True)
   info: serializers.CharField = serializers.CharField(source='user.info', read_only=True)


это описывать не надо
ModelSerializer сам все сделает
источник

SN

Sergey N. in Django [ru] #STAY HOME
нет, если не описать - этих полей не будет
источник