简体   繁体   English

Django Rest Framework SerializerMethodField 传递额外参数

[英]Django Rest Framework SerializerMethodField Pass Extra Argument

I have a model method that requires the request user to be pass in as an extra argument:我有一个模型方法,需要将请求用户作为额外参数传入:

Model Method:模型方法:

def has_achieved(self, user):
    return AwardLog.objects.filter(user=user, badge=self).count() > 0

Using the Django Rest Framework I want to call this put don't know how to pass in the extra argument from the Serializer:使用 Django Rest Framework 我想调用这个 put 不知道如何从序列化器传入额外的参数:

class BadgeSerializer(serializers.ModelSerializer):

    achieved = serializers.SerializerMethodField(source='has_achieved(request.user???)')

    class Meta:
       model = Badge
       fields = ("name", "achieved")

I cannot find anywhere this scenario has been documented.我找不到任何已记录此场景的地方。 is there a method in my views I could override to pass this in and use?在我的视图中是否有我可以重写的方法来传递并使用它? Thanks.谢谢。

Just to follow-up I did this by using self.context['request'].user ie.只是为了跟进,我通过使用self.context['request'].user即做到了这一点。

def has_achieved(self, obj):

    return obj.has_achieved(self.context['request'].user)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Django Rest Framework:如何将额外的参数传递给Django序列化程序? - Django Rest Framework: How to pass extra argument to django serializer? 如何在 Django Rest 框架中使用 SerializerMethodField 进行更新 - How to update with SerializerMethodField in Django Rest Framework 在Django rest_framework中结合SerializerMethodField和DateField - Combine SerializerMethodField and DateField in django rest_framework Django Rest Framework 如何更新 SerializerMethodField - Django Rest Framework How to update SerializerMethodField Django Rest Framework不会序列化SerializerMethodField - Django Rest Framework doesn't serialize SerializerMethodField Django REST 框架:指定SerializerMethodField的数据类型 - Django REST Framework: Specify data type of SerializerMethodField Django Rest 框架在 SerializerMethodField 上的嵌套关系性能 - Django Rest Framework nested relationship performance on SerializerMethodField Django Rest 框架 - 减少查询并提高 SerializerMethodField() 的性能 - Django Rest Framework - reduce queries and increase performance for SerializerMethodField() django-rest-framework 动态添加 SerializerMethodField 到 Serializer - django-rest-framework add SerializerMethodField to Serializer dynamically 如何在 SerializerMethodField() 使用多个查询集优化 django-rest-framework 序列化程序 - How to optimize django-rest-framework serializers with multiple queryset at SerializerMethodField()
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM