【问题标题】:Django Authorization Checking in URL having wild card patternDjango授权检查具有通配符模式的URL
【发布时间】:2022-08-14 17:13:34
【问题描述】:

我正在尝试使用通配符技术在请求的 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\') 装饰器在我想将权限应用于狂野的每个视图中 带有admin_required 权限的卡片URLs \'/admin/**\',如下所示。

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

    标签: django spring-boot django-rest-framework django-views django-permissions


    【解决方案1】:

    您可以在您的项目根 url 中执行此操作,如下所示:

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

    我不知道这是否可行,但您可以尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 2012-10-28
      • 2021-12-11
      相关资源
      最近更新 更多