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'))),
...
]
Я не знаю, сработает это или нет, но вы можете попробовать