Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 使用ModelViewSet在URL中传递自定义参数_Django_Django Rest Framework - Fatal编程技术网

Django 使用ModelViewSet在URL中传递自定义参数

Django 使用ModelViewSet在URL中传递自定义参数,django,django-rest-framework,Django,Django Rest Framework,使用ModelViewSet传递参数的最佳方式是什么?例如,实现以下目标: http://127.0.0.1:8000/api/v1/financing-settings/template/?param=block 以下是我使用的方法,但发现我已在body部分设置了参数,但这不是我想要的: class TemplateView(ModelViewSet): """ViewSet for Saving Block/ Step template."&

使用
ModelViewSet
传递参数的最佳方式是什么?例如,实现以下目标:

http://127.0.0.1:8000/api/v1/financing-settings/template/?param=block
以下是我使用的方法,但发现我已在body部分设置了参数,但这不是我想要的:

class TemplateView(ModelViewSet):
    """ViewSet for Saving Block/ Step template."""

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

        """Get list of Block/Steps with is_process_template is equal to True."""
        param = request.data['param']

        if param == "block":
            _block = Block.objects.filter(is_process_template=True).values()
            return JsonResponse({"data": list(_block)}, safe=False, status=200)

        elif param == "step":
            _step = Step.objects.filter(is_process_template=True).values()
            return JsonResponse({"data": list(_step)}, safe=False, status=200)

        return Response(status=status.HTTP_204_NO_CONTENT)
或者是一个帖子请求

 param = request.POST.get('param')

为什么你的方法不是你想要的?参数不在请求正文中,而是在
request.GET
中,DRF添加
request.data
dict,它是来自请求的所有GET/POST/FILES数据的合并afaik@IainShelvington,我的道歉不是我想要的导致我现在面临的挑战的原因,尽管请你更清楚地说明你所说的什么挑战?从request.GET读取参数几乎就是读取查询的方法parameters@IainShelvington,我看到了,它返回了一个查询信息:这是干净的,非常感谢
 param = request.POST.get('param')