【问题标题】:Set django-notification to be opt in rather than the default of opt out将 django-notification 设置为 opt in 而不是默认的 opt out
【发布时间】:2010-12-25 11:34:53
【问题描述】:

我使用django-notification 允许我的用户选择退出我在我的网络应用程序中生成的某些警报。

默认情况下,当我创建新通知类型时,它在用户通知界面中启用而不是禁用(选中)

我想让一些警报选择加入,而不是默认选择退出。我浏览了文档,但无法找到执行此操作的方法,还有其他人设法做到这一点吗?

【问题讨论】:

  • “通知类型已启用”是什么意思?
  • 默认情况下,在通知部分,用户可以选择一个复选框来接收该通知,django-notification 始终将其设置为启用 - 我希望默认禁用一些。
  • 我认为我的答案可以满足您的需求 :) 如果您不理解,请告诉我。

标签: python django pinax code-reuse


【解决方案1】:

查看代码,发送通知的决定因素是“默认”列和敏感度过滤器 NOTICE_MEDIA_DEFAULTS[medium] 之间的比较。

这个有用吗

from notification import models as notification

notification.create_notice_type("friends_invite", "Invitation Received", "you have received an invitation", default=0)

【讨论】:

  • 这是我让他做的,^_^
  • czarchaic - 非常感谢您花时间回答这个问题,您是对的,但我接受了 sonteks 的回答,因为他得到了他们的第一个回答,但再次感谢您的帮助。
【解决方案2】:

它会根据类型本身的“默认”列自动设置,默认电子邮件的敏感度为 2,因此如果您将默认设置为新通知类型默认值“1”,它将不再设置它默认情况下为您的用户启用,创建新通知类型时的默认值为“2”,这将允许将其发送给所有人。

【讨论】:

  • 嗨 Sontek - 我不完全清楚如何实现这一点 - 这是否意味着我在创建新通知类型时可以明确指定默认值 1 - 所以启用了一些有些不是?我目前使用一行创建通知,例如:notification.create_notice_type("moderation_messages"、"来自版主的消息"、"有人标记您的帖子时的电子邮件通知")
  • Sontek - 我在 Django 管理界面中看到,我可以单击我创建的通知类型之一,并显示其默认值“2” - 但是,如果我对其进行编辑并将其更改为“ 1" 在我的任何用户通知页面上都不会改变。
  • 查看代码,这是它可以工作的唯一方式... Inside NoticeType model: # 默认情况下,仅适用于灵敏度小于或等于此数字的媒体 --> default = models.IntegerField (_('de​​fault')) 和默认值:# 垃圾邮件对媒体的敏感程度 NOTICE_MEDIA_DEFAULTS = { "1": 2 # email } 并且在 get_notification_setting 方法中:默认值 = (NOTICE_MEDIA_DEFAULTS[medium]
  • 这不起作用的唯一方法是如果用户已经定义了一些设置,在这种情况下,它已经存储在他们希望发送的数据库中,因此您必须将数据库更新为对于已经定义了它的所有用户,将其设置为 false,但对于尚未定义选项的新用户/用户来说,它可以正常工作。
  • 非常感谢您抽出宝贵时间来解释这个sontek - 它运作良好。
猜你喜欢
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 2021-03-15
  • 2023-03-07
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多