如何制作django消息StackOverflow风格?

Yuv*_*hen 11 python django ajax django-users

我想使用Django的Messages模块,但是,我希望我的消息能够持续到用户单击消息旁边的X,而不是在用户重新加载页面时消息消失.

我遇到两个问题:如何使消息的上下文处理器在访问后删除消息?一旦用户点击"删除"按钮(调用ajax调用),我以后如何显式删除数据库中的消息?

谢谢!

Gui*_*vin 8

在你的情况下django.contrib.messages不会给你带来任何好处.这是一个灵感来自RoR闪存系统的消息系统,消息不应该留在那里

您应该创建自己的消息传递系统(可能是django-persistent-messages?),这样可以为数据库中的注册用户保存消息.

  • 实施这是一项相当简单的任务
  • 用户上带有外键的模型
  • 上下文处理器,用于在模板中提供消息
  • 消费消息的视图
  • 也许是一个帮助函数来创建消息

如果您这样做,请不要忘记将其提供给其他人=)

  • 目前有5个应用程序提供了一些消息通知功能:http://code.djangoproject.com/wiki/SessionMessages (5认同)

Tör*_*bor 7

从1.2开始,Django就有了一个新的消息框架django.contrib.messages- 现在已完全脱离auth模块并提供更多功能.例如,它提供了处理消息到期的基本方法.

您还可以查看提供基于cookie的简单用户通知系统的django-cnotes应用程序.设置常量CNOTES_AUTO_CLEARFalse防止自动清除音符.

还有django-notice,是内置消息通知系统的另一个替代品.它没有什么神奇之处,但提供了一个优雅而简单的API.