如何仅在管理界面中显示Django auth消息?

时间:2009-03-23 17:44:55

标签: django admin messages

Django的auth消息对于通知CMS用户某些配置问题非常方便。问题是,如果包含“django.core.context_processors.auth”上下文处理器,则会在每个页面加载时删除消息,如果要使用管理界面,则必须包含该处理器。

我尝试通过在调用admin.site.root之前将该处理器添加到TEMPLATE_CONTEXT_PROCESSORS之后将其添加到TEMPLATE_CONTEXT_PROCESSORS中,但是看起来它已经导入了处理器列表。

那么有没有办法在不更改任何Django核心文件本身的情况下完成此操作,并且不会完全忽略配置中的django Auth应用程序直到最后一刻?

1 个答案:

答案 0 :(得分:0)

如果Django消息系统对我的网站至关重要,我会将消息添加到我的视图中,例如:

如果你真的需要破解它以便它们只显示在管理页面中,那么最简单的解决方案是复制django.contrib.core.context_processors.py中的auth函数并将其放入你自己的应用程序中的context_processors.py中目录。在CONTEXT_PROCESSORS堆栈中使用它而不是django.core版本并对其进行修改,以便它查看REQUEST URL,如果是管理URL,则只调用user.get_and_delete_messages()