我已经实现了一个自定义中间件,它检查用户配置文件中的某些字段。这些字段在注册时是不需要的(为了使用户能够快速和容易地注册),但是,我更希望他们填写它们。
我的中间件检查它们是否已设置。如果没有,则通过消息通知用户。我遇到了两个问题。
知道如何解决第二个问题吗?有更好的办法解决我的第一个问题吗?
谢谢。
编辑:
是否有办法清除视图中的消息?我已经尝试过迭代它们(没有storage.used=False),而且它们仍然存在。我希望这能解决我的两个问题。
发布于 2012-04-19 17:18:59
Yoy可以使用https://github.com/AliLozano/django-messages-extends的粘性消息,这是一个只将消息保存在请求中而不是在会话中保存的存储
发布于 2011-05-17 16:51:42
那么,您是在使用django.contrib.messages
存储永久通知吗?它的目的是显示一次通知,其中用户只看到一次消息,然后消息就消失了。它所要做的事情是,“表单编辑成功”之类的消息。
就处理用户消息堆栈中的消息而言,需要考虑的是:每当您使用RequestContext
(讨论过的这里)呈现模板时,所有消息都会被刷新(不管它们是否实际显示在页面上)。
我不完全确定这是你真正想要的答案,我对你的问题有点困惑。但是,我确信您使用的消息超出了它的预期目的,这很可能是您遇到麻烦的原因。
发布于 2011-05-17 18:31:33
您可以使用中间件的回复()方法添加消息。到那时,您将知道是否向用户显示消息,这取决于他的配置文件现在是否已填入字段。
考虑使用django.contrib.messages。您可能不希望在所有请求上显示“填写XYZ字段”消息,但只希望在少数几个页面上显示,例如当用户登录或查看其配置文件页面时。
https://stackoverflow.com/questions/6034213
复制相似问题