如何防止 Django 消息泄漏到其他模块?

How to prevent Django messages from leaking out to other modules?

我目前使用的是django版本1.10内置的django-messages框架。

但是,由于消息存储在请求中,因此不像不同模块那样 "namespaced",我担心这可能会导致消息由一个模块创建的潜在情况(例如,一个消息传递框架 "your message has been sent") 可能会渗入另一个框架。

有没有办法 "namespace" 这些消息,这样我们就不会产生这种意外的影响?

另外,文档说消息在迭代时过期,这是否意味着如果我忘记迭代它们,它们有可能在多个请求中累积?

您无需遍历消息即可使它们过期。 Django 会为你做这件事。

当一个 request 得到一个 message 时,它将与下一个 request 迭代,如果模板允许它就会显示,并从 request 数据中删除。这意味着它显示一次并被删除。

email 模块中获取 message 并在 account 模块中显示的唯一方法是在 account 之后直接将用户重定向到 account 页面添加 message 的操作已经完成(例如,在发送电子邮件之后)。您可以通过 views.

完全控制它