[django]如何在 Django 额外操作中添加可选的过滤器/查询参数

· 收录于 2024-01-06 17:00:06 · source URL

问题详情

我有一个 ViewSet,其中包含如下所示的额外操作

class Parent(
  mixin.CreateModelMixin, 
  mixin.ListModelMixin, 
  mixin.RetrieveModelMixin, 
  viewset.GenericViewSet
):
  queryset = Model.objects.all()
  serializer_class = ParentSerializer
  ...
  ...
  @action(detail=True, methods=["get", "post"], serializer_class=SomeSerializerclass)
  def extra(self, request, *args, **kwargs):
    if request.method == "GET":
      .... do something
    else:  # request.method is POST
      .... do something
    ...

我想向这个额外的操作端点添加一些可选的查询参数,例如: parent/1/extra/?name=somename,如果 request.method 为 GET,这将过滤此名称的数据。此外,此查询参数可以是多个,例如:parent/1/extra/?name=somename&surname=foo

我怎样才能做到这一点?

最佳回答

暂无回答