LINUX.ORG.RU

serializers.Serialiser MethodField не могу получить внутри метода данные

 , ,


0

1

Сериализатор:

class GenderSerializer(serializers.Serializer):
    name = serializers.SerializerMethodField()

    def get_name(self, obj):
        print("------------------")
        print(obj)
        print("------------------")
        
        return "aaa"
        # return _(obj.name)

Во вьюхе:

serializer_gender = GenderSerializer(data=[{'id': 1, 'name': 'GENDER_MAN'}, {'id': 2, 'name': 'GENDER_WOMAN'}], many=True)
serializer_gender.is_valid(raise_exception=True)

out:

------------------
{}
------------------
------------------
{}
------------------
★★★★

Последнее исправление: bryak (всего исправлений: 1)

Пробовал внутри get_name

self.is_valid()
print(self.data)

Получаю так же

{}
bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 1)

serializer_gender = GenderSerializer(data=[{‘id’: 1, ‘name’: ‘GENDER_MAN’}, {‘id’: 2, ‘name’: ‘GENDER_WOMAN’}], many=True)

Не понимаю, что именно ты хочешь этим получить. SerializerMethodField — readonly, здесь ты пытаешься получить модель из данных, соответственно, readonly-поля не используются.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Я хочу получить доступ к данным в методе get_name, чтобы их модифицировать

bryak ★★★★
() автор топика

Ответ: def validate(self, data)

Всем спасибо

bryak ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.