这是我的序列化方法字段:
def get_is_user_to_user(self, obj):
return obj.to_user == self.context.get('request').user.id
如果True
是对应模型中的字段等于obj.to_user
,我希望该方法返回布尔值request.user.id
。目前,方法字段始终返回False
,即使它应该返回True
。
如何从序列化方法字段中检查obj.to_user
是否等于request.user.id
?
答案 0 :(得分:0)
我使用了下面的示例视图
class CurrentUserView(APIView):
def get(self, request):
serializer = UserSerializer(request.user)
return Response({"user": serializer.data})
答案 1 :(得分:0)
def get_is_user_to_user(self, obj):
return obj.to_user == self.context.get('request').user.id
我认为您的 FK obj.to_user
是一个 User 实例,您无法与 self.context.get('request').user.id
进行比较。
您的代码应该:
def get_is_user_to_user(self, obj):
return obj.to_user.id == self.context.get('request').user.id
或者:
def get_is_user_to_user(self, obj):
return obj.to_user == self.context.get('request').user # Make sure you did not override request.user before.