无论如何都要为django中的特定路线或路线组定义中间件? 像laravel我们可以定义如下:
Route::get('admin/profile', function () {})->middleware('auth');
答案 0 :(得分:3)
从历史上看,有一些钩子可以用来做这样的事情。但是现在你可以肯定覆盖:
def process_view(self, request, view_func, view_args, view_kwargs):
...
在您的中间件类中然后您可以从request.path
解析视图/路由并调度自定义逻辑(如果匹配与否),或者您可以匹配view_func.__name__
或类似的东西等。取决于您的需求。
https://docs.djangoproject.com/en/2.0/topics/http/middleware/#process-view