FAQ: Админка¶
Я не могу войти. Когда я ввожу правильные логин и пароль, меня снова перенаправляет на страницу входа без каких-либо сообщений об ошибках.¶
Куки авторизации неправильно добавились, потому что домен кук, который использует Django, не совпадает с доменов в браузере. Установите SESSION_COOKIE_DOMAIN в конфигурационном файле в значение домена. Например, если браузер обращается к «https://www.example.com/admin/», то в «myproject.settings» нужно установить SESSION_COOKIE_DOMAIN = „www.example.com“.
Я не могу войти. Когда я ввожу корректные логин и пароль, меня перенаправляет на страницу входа с ошибкой «Пожалуйста, укажите правильные логин и пароль».¶
Если вы всё же уверены, что логин и пароль правильные, то проверьте, что ваш аккаунт активен (is_active) и имеет нужные привилегии (is_staff = True). Входить в админку могут только пользователи, у которых эти два поля установлены в True.
Как я могу автоматически устанавливать значение поля для пользователя, который последним редактировал объект?¶
Класс ModelAdmin позволяет управлять сохранением объекта, используя информацию из запроса. Получив оттуда текущего пользователя и изменив метод save_model(), вы можете отредактировать поля объекта нужным образом. Подробнее можно посмотреть в the documentation on ModelAdmin methods.
Как запретить редактировать записи чужих пользователей?¶
Класс ModelAdmin предоставляет настройки, которые управляют видимостью и возможностью редактировать объекты в админке. Используя их и получая пользователя из запроса, get_queryse() и has_change_permission() могут быть использованы для обеспечения нужного доступа.
CSS и картинки для админки не подключаются через mod_wsgi, однако на сервере разработки всё выглядит отлично.¶
Смотри serving the admin files в разделе «How to use Django with mod_wsgi».
Фильтр «list_filter» содержит отношение многие-ко-многим, но он не показывается.¶
Django не будет отображать фильтр ManyToManyField, если есть менее двух связанных объектов.
Например, если list_filter включает в себя sites, и есть только один сайт в базе данных, то фильтра «Site» вы не увидите, так как в этом случае он будет бесполезен.
Некоторые объекты не появляются в админке.¶
Неверное количество строк может быть вызвано отсутствием значения для внешнего ключа или его неверной установкой через атрибут null=False. Если у вас есть запись с классом ForeignKey, указывающим на несуществующий объект, и этот ключ включён в список list_display, то запись может не показываться потому что модель Django не может найти соответствия на уровне базы данных.
Как я могу изменить функциональность интерфейса администратора?¶
У вас есть несколько настроек. Если вам нужна наверху комбинация из форм добавить/изменить, которые Django генерирует, то вы можете подключить JavaScript модуль через админ-класс модели, указав параметр js parameter. В нём содержится список адресов js модулей, которые будут подключены через тег <script>.
Если вам нужно нечто большее, чем настройка автоматически создаваемых форм, то вы можете написать собственное представление для админки. Админка идёт в комплекте с Django и вы можете создавать собственные представления, включать их в систему аутентификации, проверять права и делать всё, что вам необходимо.
Если вы хотите изменить внешний вид админки, то ознакомьтесь со следующими частыми вопросами.
Сгенерированная админка ужасна! Как её поменять?¶
А нам она нравится, но если вы не согласны с нами, то можете изменить CSS и картинки, которые к ней относятся. Сайт построен на семантическом HTML и большом количестве CSS хуков, так что изменение внешнего вида должно свестись только к изменению таблиц стилей.
Какие браузеры поддерживаются админкой?¶
Поддерживаются все браузеры последних версий. На десктопе это Chrome, Edge, Firefox, Opera, Safari и другие.
На смартфонах и планшетах, админка будет без ошибок отображаться на большинстве популярных браузеров для Android и iOS.
В зависимости от стандартов, поддерживаемых браузером, стили могут отображаться по-разному.
Какие вспомогательные технологии поддерживаются админкой?¶
Админка с широким спектром вспомогательных технологий. Наша цель - поддержки всех последних версий основных вспомогательных технологий, включая Dragon, JAWS, NVDA, Orca, TalkBack, Voice Control, VoiceOver iOS, VoiceOver macOS, Windows Contrast Themes, ZoomText и экранные лупы.