Como mostrar mensagens de autenticação do Django apenas na interface de administração?
Pergunta
mensagens de autenticação do Django olhar muito útil para notificar um usuário do CMS de algum problema de configuração. A coisa é que as mensagens são excluídas em cada carregamento da página se você incluir o "django.core.context_processors.auth" processador de contexto, e você tem que incluem o processador se você quiser usar a interface de administração.
Eu tentei cortar em torno dele, acrescentando que o processador para TEMPLATE_CONTEXT_PROCESSORS logo após combinando a url admin / antes de chamar admin.site.root, mas parece que ele já importou a lista de processadores por esse tempo.
Então, há alguma maneira de fazer isso sem alterar qualquer um dos arquivos principais Django próprios, e sem omitir o Django Auth aplicativo da sua configuração totalmente até o último momento possível?
Solução
Se o sistema de mensagem de Django foi fundamental para o meu site eu gostaria de acrescentar o serviço de mensagens em meus pontos de vista com, por exemplo:
- com Growl
- alguns javascript modal diálogo como jQuery Alerta Diálogos
Se você realmente precisa para cortá-lo para que eles mostram apenas em páginas de administração, em seguida, a solução mais fácil seria copiar a função de autenticação em django.contrib.core.context_processors.py e colocá-lo em um context_processors.py em seu próprio aplicativo diretório. Use-o nas CONTEXT_PROCESSORS pilha em vez da versão django.core e modificá-lo para que ele olha para o URL do pedido e só chama user.get_and_delete_messages()
se é a URL do Administrador.