从 Django REST Framework 中的 APIView 中获取完整的请求 URL

Posted

技术标签:

【中文标题】从 Django REST Framework 中的 APIView 中获取完整的请求 URL【英文标题】:Get full request URL from inside APIView in Django REST Framework 【发布时间】:2020-12-07 19:43:30 【问题描述】:

请求对象中是否有我可以访问的方法或属性以完全按照客户端请求的方式返回 URL?包含查询参数?

我在查看this question 后检查了request.build_absolute_uri,但它只返回没有查询参数的 URL。

我需要 URL,因为我的 API 响应返回结果“下一页”的 URL。我可以从query_params 属性构建它,但是这个视图需要很多查询参数,有些会排除其他参数,因此访问请求 url 会为我省去很多痛苦。

【问题讨论】:

你想要request.get_full_path() 是的!谢谢你。您介意提交作为答案以便我接受吗? 【参考方案1】:

要获取完整路径,包括查询字符串,您需要request.get_full_path()

【讨论】:

这也适用于序列化程序的create() as self.context['request'].get_full_path()

以上是关于从 Django REST Framework 中的 APIView 中获取完整的请求 URL的主要内容,如果未能解决你的问题,请参考以下文章

从 Django django-rest-framework 视图有条件地返回 JSON 或 HTML 响应

Django Rest Framework ModelViewSet 视图没有从数据表中看到 CSRFToken

从 Django REST Framework 中的 APIView 中获取完整的请求 URL

django-rest-framework-simplejwt 禁用刷新

Django rest framework 之版本

Django REST framework视图