0

我试图弄清楚如何在用户群上启用/禁用 Django-Postman 中的电子邮件通知。通知系统已经包含在内,我希望能够为每个用户设置一个字段,其中包含用户想要接收邮递员通知邮件的布尔值。

我在 postman.utils 中找到了以下设置:

# to disable email notification to users
DISABLE_USER_EMAILING = getattr(settings, 'POSTMAN_DISABLE_USER_EMAILING', False)

但是我将如何使用它?

亲切的问候!

4

1 回答 1

0

该代码表示django-postman​​读取一个settings.py名为 的设置(从您的文件中)POSTMAN_DISABLE_USER_EMAILING,如果未设置任何值,则默认为False.

文档说:

POSTMAN_DISABLE_USER_EMAILING

如果您不希望向用户发送基本电子邮件通知,请将其设置为 True。此设置不适用于访问者(请参阅 POSTMAN_DISALLOW_ANONYMOUS),也不适用于通知应用程序(请参阅 POSTMAN_NOTIFIER_APP)

默认为:假。

但是,这会在整个系统中打开和关闭电子邮件。要根据您的要求在每个用户的基础上禁用用户电子邮件,此代码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)

因此,为每个用户发送电子邮件的一种巧妙方法是向您的 User 对象添加一个字段(或函数),然后在postman\utils.py.

更好的方法是使用 django-postman 对通知框架(如django-notification)的内置支持,它允许您基于每个用户自定义消息传递(包括电子邮件)。

于 2013-08-26T23:25:32.707 回答