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)
有谁知道如何解决它?
当您调用该序列化程序时,您必须从视图中传递上下文,例如
MySerializer(context={'request': request})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3203 次 |
最近记录: |