我有一个模型方法,要求请求用户作为额外参数传入:
模型方法:
def has_achieved(self, user):
return AwardLog.objects.filter(user=user, badge=self).count() > 0
使用Django Rest Framework我想调用此put不知道如何传递来自Serializer的额外参数:
class BadgeSerializer(serializers.ModelSerializer):
achieved = serializers.SerializerMethodField(source='has_achieved(request.user???)')
class Meta:
model = Badge
fields = ("name", "achieved")
我无法在任何地方找到这种情况。我的视图中是否有一个方法可以覆盖以传递并使用?感谢。
答案 0 :(得分:14)
只是为了跟进,我使用self.context['request'].user
即
def has_achieved(self, obj):
return obj.has_achieved(self.context['request'].user)