Использование панели администратора django без приложения auth
Я отключил аутентификацию для панели администратора Django, как описано здесь.
Я хотел бы пойти дальше и полностью пропустить django.contrib.auth
миграции, такие как таблицы пользователей или групп.
Я попытался удалить django.contrib.auth
из INSTALLED_APP
и получил ошибку, как показано ниже:
RuntimeError: Model class django.contrib.auth.models.Permission doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Есть ли способ использовать админ-панель Django без миграций django.contrib.auth
?
Короткий ответ : Нет
Длинный ответ : С точки зрения безопасности нет абсолютно никаких причин когда-либо делать это, вы сделаете свою базу данных открытой для всех, с личной информацией.
К счастью, Django достаточно умен, чтобы не позволять никому этого делать, и для администрирования требуется промежуточное ПО auth и зависимости django.contrib.auth.
Опять же, вы не должны этого делать, вы можете настроить фреймворк Django и это может сработать, но вам придется написать много шаблонов и большинство пакетов не будут работать.
Если вы хотите обновить бэкенд аутентификации, Django позволяет сделать это довольно просто: https://docs.djangoproject.com/en/4.1/topics/auth/customizing/
Но имейте в виду, что для работы админки все равно потребуется хотя бы один бэкенд аутентификации.
django admin (django.contrib.admin
) тесно связан с django.contrib.auth
.
Я не нашел способа использовать админ панель без приложения auth
.
Тем не менее,
Я нашел решение, которое оправдало мои ожидания.
Я установил has_permission
атрибут admin.site
в True
, как описано здесь.
Далее, я снял регистрацию моделей Group
и User
с панели администратора, как описано здесь .
Это не совсем чистое решение, так как django.contrib.auth
миграции все еще выполняются, но обычный пользователь этого не заметит.