Использование панели администратора 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 миграции все еще выполняются, но обычный пользователь этого не заметит.

Вернуться на верх