我正在尝试弄清楚如何在用户群中启用/禁用Django-Postman中的电子邮件通知。通知系统已经包含在内,我希望能够为每个用户设置一个字段,其中包含一个用户想要接收邮差通知邮件的布尔值。
我在postman.utils中找到了以下设置:
# to disable email notification to users
DISABLE_USER_EMAILING = getattr(settings, 'POSTMAN_DISABLE_USER_EMAILING', False)
但我怎么用呢?
亲切的问候!
答案 0 :(得分:0)
该代码表示django-postman
读取了一个名为settings.py
的设置(来自您的POSTMAN_DISABLE_USER_EMAILING
文件),如果未设置任何值,则默认为False
。
The docs说:
POSTMAN_DISABLE_USER_EMAILING
如果您不希望向用户发送基本电子邮件通知,请将其设置为True。此设置不适用于访问者(请参阅 POSTMAN_DISALLOW_ANONYMOUS),也不是通知程序应用程序(请参阅POSTMAN_NOTIFIER_APP)
默认为:False。
然而,这会在整个系统中打开和关闭电子邮件。要根据您的要求禁用每个用户的用户电子邮件,postman/utils.py
中的此代码指向答案:
if notification:
# the context key 'message' is already used in django-notification/models.py/send_now() (v0.2.0)
notification.send(users=[user], label=label, extra_context={'pm_message': object, 'pm_action': action})
else:
if not DISABLE_USER_EMAILING and user.email and user.is_active:
email('postman/email_user_subject.txt', 'postman/email_user.txt', [user.email], object, action)
因此,为每个用户发送电子邮件的一种hacky方法是向User对象添加一个字段(或函数),并在postman\utils.py
中的那一行添加另一个检查。
更好的方法是使用django-postman对django-notification等通知框架的内置支持,允许您根据每个用户自定义消息(包括电子邮件)。