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')