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

我尝试通过在匹配管理 url 之后/调用 admin.site.root 之前将该处理器添加到 TEMPLATE_CONTEXT_PROCESSORS 来绕过它,但似乎当时它已经导入了处理器列表。

那么有没有什么方法可以做到这一点,而不需要更改任何 Django 核心文件本身,并且直到最后一刻才从配置中完全忽略 django Auth 应用程序?

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top