Django Проверка авторизации в URL с шаблоном дикой карты

Я пытаюсь реализовать механизм проверки разрешений в 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') в каждом представлении, я хочу применить разрешение к дикой карте URL '/admin/**' с разрешением , как в Spring boot следующим образом. URL '/admin/**' с разрешением admin_required как в Spring boot следующим образом.

  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'))),
    ...
]

Я не знаю, сработает это или нет, но вы можете попробовать

Вернуться на верх