django - Django Rest Framework 将额外的参数传递给 Serializer
问题描述
我试图弄清楚如何将额外的参数传递给序列化程序。
我的情况是这样的:
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']
答案已经可用:将额外参数传递给 Django Rest Framework 中的序列化程序类
但我不明白如何获取 self 参数。
在我看来的错误是这样的:
类型错误:get_activity_hours () 缺少 1 个需要的位置参数:'project_activity'
解决方案
删除@staticmethod
就行了!!
推荐阅读
- matplotlib - legend in sns.pairplot does not show completely
- python - 在tkinter,python中以像素为单位设置标签宽度
- ruby-on-rails - 测试私有方法的最佳实践
- c# - API IActionResult 结果
- java - 谐波递归
- powerbi - Power BI 小计和总计错误
- r - 如何在 R 中编写函数(类似于 SAS 宏)来导入和格式化 Excel 文件列表?
- python - 使用无服务器存储库中的层使用 Lambda 函数在本地进行测试
- python - 为什么某些元素的 XPath 有时会发生变化?
- php - 在 Laravel 5 中访问文件上传的属性