具有通配符模式的 URL 中的 Django 授权检查

Django Authorization Checking in URL having wild card pattern

我正在尝试使用通配符技术在 URL 中为请求实施权限检查机制,而不是对每个视图实施权限检查。

目前我拥有的是

urlpatterns = [
    path('admin/', include('admin_urls.py')),
    ...
]

而我的admin_urls.py如下

urlpatterns = [
    path('', ViewSpaceIndex.as_view(), name="admin_index"),
     path('', EmployeeView.as_view(), name="employee"),
    ...
]

观点如下

@method_decorator(admin_required, name='dispatch')
 class EmployeeView(TemplateView):
     template_name = 'secret.html'



@method_decorator(admin_required, name='dispatch')
 class EmployeeView(TemplateView):
     template_name = 'secret.html'

我想要实现的是不在每个视图中使用重复的 @method_decorator(admin_required, name='dispatch') 装饰器我想将权限应用到一个 wild 具有 admin_required 权限的卡 URL '/admin/**' 像 Spring 中那样引导如下。

  http.authorizeRequests()
           
            .antMatchers("/admin/**").has_permission("is_admin")
            

您可以在项目根目录 url 中这样做

from .my_custom_decorators import admin_required
urlpatterns = [
    path('admin/', admin_required(include('admin_urls.py'))),
    ...
]

我不知道这是否有效,但你可以试试