2009-03-23 7 views
0

Les messages auth de Django sont très utiles pour avertir un utilisateur CMS de certains problèmes de configuration. La chose est que les messages sont supprimés à chaque chargement de page si vous incluez le processeur de contexte "django.core.context_processors.auth", et vous devez inclure ce processeur si vous voulez utiliser l'interface d'administration.Comment afficher les messages auth Django uniquement dans l'interface d'administration?

J'ai essayé de le contourner en ajoutant ce processeur à TEMPLATE_CONTEXT_PROCESSORS juste après avoir fait correspondre l'URL d'administration/avant d'appeler admin.site.root, mais il semble qu'il ait déjà importé la liste des processeurs à ce moment-là.

Y a-t-il un moyen de le faire sans changer les fichiers core de Django eux-mêmes, et sans omettre l'application django Auth de votre config jusqu'au dernier moment?

Répondre

0

Si le système de message Django était essentiel pour mon site, j'ajouterais la messagerie dans mes vues avec, par exemple:

Si vous avez vraiment besoin de le pirater pour qu'ils ne s'affichent que dans les pages d'administration, alors la solution la plus simple serait de copier la fonction auth dans django.contrib.core.context_processors.py et de la placer dans un context_processors.py dans votre propre applica répertoire de l'annuaire. Utilisez-le dans la pile CONTEXT_PROCESSORS au lieu de la version django.core et modifiez-le afin qu'il regarde l'URL REQUEST et n'appelle que user.get_and_delete_messages() s'il s'agit de l'URL d'administration.

Questions connexes