我有这样的序列化器
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)
有谁知道如何解决它?
我使用查询集从城市获取用户列表:
usuarios = Usuario.objects.filter(municipio=muni).exclude(user_id = ide)
Run Code Online (Sandbox Code Playgroud)
所以我得到类似的信息:
[Usuario:user1,Usuario:user2,Usuario:user3]
这很好,但我需要做另一个查询集来获取他们的设备
for usuario in usuarios:
devices = GCMDevice.objects.filter(user_id=usuario.user.id)
Run Code Online (Sandbox Code Playgroud)
我只从最后一个用户(usuario)那里得到最后一个设备:
[GCMDevice:三星]
有人知道我如何从该用户那里获取所有设备吗?