我有一个模型方法,要求将请求用户作为额外参数传入:
模型方法:
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")
我无法在任何地方找到这种情况的记录。在我看来有没有一种方法可以重写以传递并使用它?谢谢。
最佳答案
为了跟进,我通过使用 self.context['request'].user
ie 做到了这一点。
def has_achieved(self, obj):
return obj.has_achieved(self.context['request'].user)
关于python - Django Rest Framework SerializerMethodField 传递额外参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808213/