【发布时间】:2016-04-14 07:35:13
【问题描述】:
我正在使用 DRF 构建一个 RPC 样式的 API,其中每个端点都可以使用 GET 或 POST 方法调用。到目前为止,我已经很好地结合了这些方法:
class UpdateUser(APIView):
permission_classes = (permissions.IsAuthenticated,)
def post(self, request, *args, **kwargs):
return self.get(request, *args, **kwargs)
def get(self, request, format=None):
# Do stuff here with request.data
不幸的是,POST 在request.data 中提供数据,而在request.query_params 中提供 GET。有没有办法将它们组合成request.data 或像request.params 这样的自定义?解析器似乎不起作用,因为它们没有被 GET 请求调用。
【问题讨论】:
-
http://example.com/test/?param_name=1可以使用request.GET.get('param_name')获取查询参数值,它会返回1 -
当然可以在
get函数中同时使用request.data和request.query_params,但考虑到添加的样板,我想避免这种情况。 -
建议使用
request.query_params而不是request.GET以使您的代码更具可读性 (source)。
标签: django django-rest-framework