Django Rest Framework KeyError“请求”

PoY*_*era 6 django django-rest-framework

我有这样的序列化器

class PublicacionSerializer(serializers.ModelSerializer):
    usuario = UserSerializer2()
    likeado = serializers.SerializerMethodField()

    class Meta:
        model = Publicacion
        fields = ('id','usuario', 'likeado')

    def get_likeado(self, obj):
        user = self.context['request'].user
        try:
            like = Like.objects.get(publicacion=obj, usuario=user)
            return like.id
        except Like.DoesNotExist:
            return False
Run Code Online (Sandbox Code Playgroud)

所以我在另一个中使用了该序列化器:

class EstadoSerializer(serializers.ModelSerializer):
    publicacion = PublicacionSerializer(read_only=True)
Run Code Online (Sandbox Code Playgroud)

在 views.py 我有

class ModificarEstadoMixin(object):
    queryset = Estado.objects.all()
    serializer_class = EstadoSerializer

class ModificarEstadoDetail(ModificarEstadoMixin, RetrieveUpdateAPIView):
    permission_classes = (permissions.IsAuthenticated,
              CanModifEstado,)
    pass
Run Code Online (Sandbox Code Playgroud)

当我访问 url 以了解用户是否喜欢某个帖子时,我在代码行中收到了 KeyError 'request'

user = self.context['request'].user
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决它?

itz*_*nTV 8

当您调用该序列化程序时,您必须从视图中传递上下文,例如

MySerializer(context={'request': request})
Run Code Online (Sandbox Code Playgroud)