#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
в качестве экземпляра