2017-03-06 61 views
1

我有我的串行這樣Django的REST框架KeyError異常 '請求'

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 

所以我用在另外一個seriaizer:

class EstadoSerializer(serializers.ModelSerializer): 
    publicacion = PublicacionSerializer(read_only=True) 

在views.py我有

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

class ModificarEstadoDetail(ModificarEstadoMixin, RetrieveUpdateAPIView): 
    permission_classes = (permissions.IsAuthenticated, 
       CanModifEstado,) 
    pass 

當我訪問的網址知道如果用戶喜歡一個帖子我得到了一個KeyError'請求'在代碼行

user = self.context['request'].user 

有誰知道如何解決它?

回答

2

當你調用序列化,你必須從視圖傳遞上下文像

MySerializer(context={'request': request}) 
+0

或者也可以稱之爲'get_serializer'方法,其將通過上下文你 –

+0

我不知道我應該把它@itzmeontv我編輯我的帖子 –

相關問題