DRF — визуализация СериализатОрметоДполя в сериализаторах.Сериализатор

#python-3.x #django #serialization #django-rest-framework

Вопрос:

У меня есть небольшая проблема с получением ценности SerializerMethodField при использовании serializers.Serializer

views.py:

 class StaticDataView(generics.RetrieveAPIView):
    serializer_class = serializers.StaticDataSerializer

    def retrieve(self, request, *args, **kwargs):
        serializer = self.get_serializer()
        return Response(serializer.data)
 

serializer.py

 class AnimatorStaticDataSerializer(serializers.Serializer):
    data = DataSerializer(data=Data.objects.all(), many=True)
    user = serializers.SerializerMethodField()
    
    def get_user(self, obj):
        return UserSerializer(self.context['request'].user).data
 

Когда я вызываю свое представление API, в ответе я получаю только ключ данных, пользователь не отображается. Я обнаружил, что это может быть потому SerializerMethodField , что есть read_only=True , и по этой причине get_initial() от rest_framework/serializers.py не отображает это. Но как я могу написать это по-другому, когда мне нужно передать контекст с пользователем в качестве экземпляра в UserSerializer. Сериализатор данных также использует запрос из контекста.

Комментарии:

1. Чего вы пытаетесь достичь?

2. получить user = serializers.SerializerMethodField в ответ или передать вложенному сериализатору self.context['request'].user в качестве экземпляра