0

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

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

那么有什么方法可以在不更改任何 Django 核心文件本身的情况下做到这一点,并且在最后可能之前完全从您的配置中省略 django Auth 应用程序?

4

1 回答 1

0

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

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

于 2009-03-23T22:01:09.607 回答