Я думаю, вы связываете безопасность и разрешения с системой аутентификации Django.По большей части инструменты Django в основном предназначены для разделения пользователей на две группы: аутентифицированные (вошедшие в систему) и анонимные.Это имеет смысл для 90% веб-сайтов, так как на самом деле вам не нужно слишком много различий (возможно, другое для скрытого администратора, но это крайний случай, а не норма).
Разрешающая обстановка декоратор - очень простая ловушка для людей, желающих перенаправить людей, у которых не было разрешений, перейти на страницу входа.Однако в какой-то момент этого недостаточно.Если вам нужно определенное разрешение, а у пользователя его нет, как перенаправление их на страницу входа помогает им?
В этом случае так просто свернуть свой собственный декоратор, используя сообщения для конкретных ошибок.Один из таких примеров:
def user_has_permissions(method):
return user_passes_test(lambda u: u.has_perm('my_permission'), login_url='/permission-denied/')(method)