【问题标题】:How to use django-subscription to create live notifications如何使用 django-subscription 创建实时通知
【发布时间】:2011-12-22 11:05:34
【问题描述】:

我已经为此工作了一段时间,并想创建facebook-like notification 系统。我的项目有以下特点

  • 它有一个博客界面,用户可以在其中写博客,人们可以在上面发布 cmets。每当有人关注它时,我想向作者发送通知。

  • 用户可以发布他们的问题,就像在 stackoverflow 上一样,每当有人回答问题时,我想通知发布问题的用户。

  • 用户可以将某些博客/问题标记为收藏夹,并且每当它们发生任何活动时,我都希望相应的用户得到通知。

经过大量搜索,我发现一个帖子说django-subscription 可以为其提供最佳解决方案,但是在阅读文档后,我走到了死胡同。我在windows上开发,尝试运行测试,失败了。

文档也很不清楚,我不知道事情会如何运作。谁能指出我正确的方向。

【问题讨论】:

  • 今晚晚些时候我将把 subsume 的 READ 改写成适当的文档。感谢您对此以及 github 上的问题的反馈。
  • 我真的很期待更新的文档,因为我需要制作这个东西,django-subscription 会真的很有帮助。只是为了给您一个初学者的观点,我通常在文档中发现缺少的一件事是没有example 说明我如何使用该应用程序来查看它在我的templates 之一中工作。因此,如果您可以添加它,那将有很大帮助
  • 正如我在另一篇文章中所说,被“通知”“像 facebook”是一个相当复杂的问题,需要对 facebook、django 和 django 应用程序进行大量研究。如果 django-subscription 能够发送电子邮件通知(裸机或您的实验室有一些工作),它不会为用户提供允许他检查/取消选中他想要接收或不接收的通知类型的页面。我目前正在处理我们的存储库,但如果您愿意,我写一篇关于此应用程序的详尽博客文章可能会更好,这样您就可以更好地了解在哪里投入时间。你怎么看?
  • 如果您能引导我走向正确的方向,我将不胜感激。我做了很多东西,但是有了这个通知的东西,我完全被卡住了。如果它变得更简单,我真的不必让用户选择或取消选择他/她收到的通知类型。另外我不想发送电子邮件,而是想在某个视图中设置该信息,我可以在其中显示
  • 我很想移动这个讨论来和你聊天,但我不知道该怎么做。无论如何,您可以使用我刚刚刷新的示例项目,直到我编写文档(对不起,现在大头疼!)。查看自述文件:github.com/yourlabs/django-subscription/tree/master/…

标签: django notifications django-apps


【解决方案1】:

你通过信号做得更好。如果发生了什么事,创建发送电子邮件给订阅者。

@receiver(post_save, sender=BlogPost)
def send_mail_to_subs(sender, instance, created, **kwargs):
    if created:
        for subs in instance.author.subscribed.all():
            send_mail(
                f'New Post from {instance.author}',
                f'Title: {instance.post_title}',
                'youremail',
                [subs.email],
            )

良好的编码:)

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多