Я добавляю этот ответ, потому что тот, который предоставил Педро, не смог ответить на ту часть, которую я пытался выяснить, не давая никому доступа к / admin / path.
Я использовал Django-Decorator-Include , чтобы смешать его с пользовательским декоратором Педро
и результат на моем urls.py:
from decorator_include import decorator_include
from django.core.exceptions import PermissionDenied
def user_is_admin(function):
def wrap(request, *args, **kwargs):
if request.user.is_authenticated and request.user.is_staff:
return function(request, *args, **kwargs)
else:
raise PermissionDenied
return wrap
urlpatterns = [
.....
path('admin/', decorator_include([user_is_admin], admin.site.urls)),
.....
]