【发布时间】:2018-10-11 09:34:41
【问题描述】:
我需要将request.POST 参数移动到request.query_params QueryDict。
有公认的方法吗?
背景
我正在使用带有 DRF 后端的数据表,它工作正常。我正在将应用程序移至集成,然后......它停止工作。为什么?请求 URL 太大(在 7000 个字符范围内) - 这在我的开发主机中不是问题...
所以,我正在寻找解决该问题的方法。第一个解决方案是使用 POST 而不是 GET。这行得通,但是将 DRF 与数据表集成的库没有处理 POST 请求的表单参数。因此,过滤、分页等功能已停止工作。
解决这个问题最简单的方法就是将表单参数放入查询参数中,让后端像处理普通的GET请求一样处理请求。
这就是我现在正在做的事情:
class DataViewSet(viewsets.ModelViewSet):
queryset = Data.objects.all()
serializer_class = DataSerializer
def create(self, request, *args, **kwargs):
# DataTable uses a lot of parameters which do not fit into a normal URL. To get the data we need to do POST,
# so that the parameters are sent in the body
# We hijack the create method to list the data
return self.list(request, *args, **kwargs)
【问题讨论】:
标签: django datatables django-rest-framework query-parameters post-parameter