Django(2.1.4):如何从中间件中的所有请求获取路径变量?

时间:2019-02-27 16:14:53

标签: django python-3.x django-rest-framework

我是python(3)/ Django(2.1.4)框架的新手。我想获取路径变量,该变量存在于中间件的所有URL中。我在下面尝试了一些方法,但对我不起作用。

URL:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/mywebsite/<uuid:path_variable_name>/', include('website.urls')),
]

中间件:

class my_middle_ware(MiddlewareMixin):

def __init__(self, get_response):
    self.get_response = get_response

def __call__(self, request):
    print(request.GET.get['path_variable_name'])
    print(request.POST.get['path_variable_name'])
    response = self.get_response(request)
    return response

我想在中间件中获取path_variable_name。而不是使用request.GET,request.POST等,是否有任何通用方法来拦截所有请求request.getPathVariable('path_variabl_name')?提前谢谢。

1 个答案:

答案 0 :(得分:1)

直到the url is resolved,这些参数才可用。但是,基于类的中间件也具有可用的钩子process_view,其中view_argsview_kwargs可用-url中的参数将位于其中之一。