2017-03-06 15 views
1

は、私はこのDjangoの残りのフレームワーク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を使用します。

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

私は

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

class ModificarEstadoDetail(ModificarEstadoMixin, RetrieveUpdateAPIView): 
    permission_classes = (permissions.IsAuthenticated, 
       CanModifEstado,) 
    pass 
を持っています

ユーザーが投稿を好きであるかどうかを知るためのURLにアクセスするときコードラインにKeyError 'request'があります

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

誰でも解決方法を知っていますか?あなたがそのシリアライザを呼び出すと

答えて

2

、あなたは

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

のようなビューからのコンテキストを渡すために持っているか、どこに置くか、私がすべきあなたは –

+0

私は知らないために、あなたは 'コンテキストを渡しますget_serializer'メソッドを呼び出すことができますそれは私の投稿を編集した@itzmeontv –

関連する問題