Django Rest Framework - 如何在urls.py中获取Http头信息

时间:2015-06-17 00:21:39

标签: python django django-views django-rest-framework django-urls

我正在制作基于Django的API,这是我的urls.py。

from django.conf.urls import include, url

api_version = "v1"

urlpatterns = [
    url(r'^v1/', include( "api."+ api_version +".urls", namespace=api_version )),
]

我想要做的是从http接受标头中检索API版本。我试图使用django.http.HttpRequest模块,但没有做到这一点。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

您无法访问urls.py上的请求,请参阅:How Django processes a request

您可以在django-rest-framework上配置versioning并在请求对象上获取version,如:

class SampleView(APIView):

 def post(self, request, format=None):
     if request.version == '1':
         return Response(status=status.HTTP_410_GONE)

或使用URLPathVersioning方法。

答案 1 :(得分:0)

您无法访问url.py中的请求,因为您的特定scnerio i-e版本, 您可以为不同版本的api使用不同的URL。

url(r'^v1/', include("api.v1.urls")),
url(r'^v2/', include("api.v2.urls")),
url(r'^v3/', include("api.v3.urls")),