Как показывать сообщения Django auth только в интерфейсе администратора?

StackOverflow https://stackoverflow.com/questions/674464

  •  21-08-2019
  •  | 
  •  

Вопрос

Сообщения аутентификации Django выглядят довольно удобными для уведомления пользователя CMS о какой-либо проблеме с конфигурацией.Дело в том, что сообщения удаляются при каждой загрузке страницы, если вы включаете контекстный процессор "django.core.context_processors.auth", и вы должны включить этот процессор, если хотите использовать интерфейс администратора.

Я попытался обойти это, добавив этот процессор в TEMPLATE_CONTEXT_PROCESSORS сразу после сопоставления URL-адреса администратора / перед вызовом admin.site.root, но, похоже, к тому времени он уже импортировал список процессоров.

Итак, есть ли какой-либо способ сделать это без изменения каких-либо самих файлов ядра Django и без полного исключения приложения django Auth из вашей конфигурации до последнего возможного момента?

Это было полезно?

Решение

Если бы система сообщений Django была критичной для моего сайта, я бы добавил сообщения в свои представления с помощью, например:

Если вам действительно нужно взломать его, чтобы они отображались только на страницах администратора, то самым простым решением было бы скопировать функцию аутентификации в django.contrib.core.context_processors.py и поместить ее в context_processors.py в вашем собственном каталоге приложений.Используйте его в стеке CONTEXT_PROCESSORS вместо версии django.core и измените его так, чтобы он просматривал URL-адрес ЗАПРОСА и вызывал только user.get_and_delete_messages() если это URL-адрес администратора.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top