我为我的Django项目实现了一个自定义身份验证设置。用户有一些用户角色。现在,我想确保某些特定的路由可能只适用于特定的用户角色。假设edit/uploaded-files
仅适用于role = 1
的用户。所以我为此创建了一个中间件。
from django.shortcuts import redirect
class HRMiddleware(object):
def process_request(self, request):
user = request.user
if not (user and user.is_authenticated() and user.email):
return redirect('')
if user.role_id.id != 1:
raise 403
return None
现在,我如何将此中间件应用于某些特定的路由?我找到了一些解决方案,比如使用装饰器@decorator_from_middleware(MyMiddleware)
和在中间件中指定路由。有没有更好的办法呢?我是一个Laravel开发者。这是我的第一个Django项目。在laravel中,我们可以指定路由中的中间件。请帮我
2条答案
按热度按时间juud5qan1#
试试这个:
myzjeezk2#
我觉得这样更好