Comment afficher les messages de Django uniquement dans l'interface d'administration?

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

  •  21-08-2019
  •  | 
  •  

Question

Messages auth de Django semblent très pratique pour avertir un utilisateur CMS d'un problème de configuration. La chose est que les messages sont supprimés sur 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.

J'ai essayé de piratage autour en ajoutant que le processeur à TEMPLATE_CONTEXT_PROCESSORS juste après l'url correspondant admin / avant d'appeler admin.site.root, mais il semble qu'il a déjà importé la liste des processeurs en ce moment-là.

est-il possible de le faire sans modifier le noyau Django fichiers eux-mêmes, et sans omettre l'application django Auth de votre config entièrement jusqu'au dernier moment possible?

Était-ce utile?

La solution

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 afin qu'ils ne montrent 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 le mettre dans un context_processors.py dans votre propre application annuaire. Utilisez-le dans la pile CONTEXT_PROCESSORS au lieu de la version django.core et le modifier de sorte qu'il semble à l'adresse REQUEST et appelle seulement si elle est user.get_and_delete_messages() l'URL d'administration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top