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
就可以了 对!!谢谢你的帮助!