Django的auth消息对于通知CMS用户某些配置问题非常方便。问题是,如果包含“django.core.context_processors.auth”上下文处理器,则会在每个页面加载时删除消息,如果要使用管理界面,则必须包含该处理器。
我尝试通过在调用admin.site.root之前将该处理器添加到TEMPLATE_CONTEXT_PROCESSORS之后将其添加到TEMPLATE_CONTEXT_PROCESSORS中,但是看起来它已经导入了处理器列表。
那么有没有办法在不更改任何Django核心文件本身的情况下完成此操作,并且不会完全忽略配置中的django Auth应用程序直到最后一刻?
答案 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()
。