Отсоединение auth/auth от приложений Django
Я являюсь автором нескольких приложений Django, которые я развертываю за системой аутентификации/авторизации. В настоящее время представления в моих приложениях, основанные на классах, жестко закодированы с учетом моих конкретных требований к аутентификации, с помощью декораторов DRF authentication_classes
и permission_classes
и декоратора Django permission_required
(и его друзей).
Проблема в том, что я не могу найти способ настроить их на уровне проекта. Например, во время тестирования я не хочу иметь дело с моей системой авторизации - создание тестовых пользователей, вход в систему и т.д. Я просто хочу протестировать свое приложение. Но даже если у меня есть отдельная среда Django для производства и разработки, нет элегантного способа для меня, чтобы в settings.py
моей среды dev сказать (например) MYAPP_AUTH_MODEL=None
, а в среде prod сказать что-то вроде MYAPP_AUTH_MODEL=permission_required('myperm_create')
. В качестве другого примера, как я могу предоставить потребителям моего приложения полный контроль над тем, как они защищают свое развертывание, включая возможность выбора не защищать его вообще?
Как написать приложение Django, которое может быть защищено с помощью auth/auth, не записывая ничего в приложение, что накладывает ограничения на как оно защищено в любом конкретном развертывании?