Django Rest框架将额外参数传递给序列化程序

Django Rest框架将额外参数传递给序列化程序,django,python-3.x,serialization,Django,Python 3.x,Serialization,我试图弄清楚如何将额外的参数传递给序列化程序 我的情况是: class ActivityDataHours(generics.RetrieveUpdateAPIView): permission_classes = (permissions.IsAuthenticated,) def get(self, request, *args, **kwargs): pa = ProjectActivity.objects.values('project_code')

我试图弄清楚如何将额外的参数传递给序列化程序

我的情况是:

class ActivityDataHours(generics.RetrieveUpdateAPIView):

    permission_classes = (permissions.IsAuthenticated,)

    def get(self, request, *args, **kwargs):

        pa = ProjectActivity.objects.values('project_code').distinct()

        if request.GET.get('activityCode') is not None:
            is_code_filter = False
        else:
            is_code_filter = True

        return Response(ActivityDataHoursSerializer(pa, many=True, context={'is_code_filter': is_code_filter}).data)



class ActivityDataHoursSerializer(serializers.ModelSerializer):

    activity_hours = serializers.SerializerMethodField()

    @staticmethod
    def get_activity_hours(self, project_activity):
        is_code_filter = self.context.get("is_code_filter")

        wh = WorkedHours.objects.values('project_code')

        return wh

    class Meta:
        model = Project
        fields = ['activity_hours']
已有答案:

但我不明白如何获取自我参数

在我看来,出现的错误是:

class ActivityDataHours(generics.RetrieveUpdateAPIView):

    permission_classes = (permissions.IsAuthenticated,)

    def get(self, request, *args, **kwargs):

        pa = ProjectActivity.objects.values('project_code').distinct()

        if request.GET.get('activityCode') is not None:
            is_code_filter = False
        else:
            is_code_filter = True

        return Response(ActivityDataHoursSerializer(pa, many=True, context={'is_code_filter': is_code_filter}).data)



class ActivityDataHoursSerializer(serializers.ModelSerializer):

    activity_hours = serializers.SerializerMethodField()

    @staticmethod
    def get_activity_hours(self, project_activity):
        is_code_filter = self.context.get("is_code_filter")

        wh = WorkedHours.objects.values('project_code')

        return wh

    class Meta:
        model = Project
        fields = ['activity_hours']
TypeError:get_activity_hours()缺少1个位置参数 必填项:“项目活动”


删除
@staticmethod
就可以了

对!!谢谢你的帮助!