跳转到主要内容

另一个新闻订阅应用。

项目描述

另一个新闻订阅应用。

https://travis-ci.org/matthiask/django-newsletter-subscription.png?branch=master

订阅流程

  • 用户在/newsletter/输入他的电子邮件地址。

  • 会发送一封包含/newsletter/s/<signed_email_address>/格式链接的邮件到指定的地址。

  • 访问链接后,用户将立即订阅新闻通讯。可选地,会显示一个表单,要求用户提供额外的数据。

退订流程

  • 用户在/newsletter/输入他的电子邮件地址,并将立即退订。

  • 会发送一封邮件给用户,告知他们退订已发生。如果退订不是预期的,提供链接以便立即重新订阅。链接的格式为/newsletter/r/<signed_email_address>/

订阅模型

数据库字段的最小集如下

  • email (EmailField, 唯一)

  • is_active (BooleanField, 默认为 False)

用法

本例假设您至少使用 Django 1.4。

  1. 使用 pip 安装 django-newsletter-subscription

  2. 添加一个继承自 newsletter_subscription.models.SubscriptionBase 的具体模型,并可选地添加有关订阅的额外字段。您应该准备好在没有这些额外字段的情况下工作 - 根据上述订阅流程描述,它们的存在并非强制性的。一个完整的示例

    from django.db import models
    from django.utils.translation import ugettext_lazy as _
    
    from newsletter_subscription.models import SubscriptionBase
    
    class Subscription(SubscriptionBase):
        full_name = models.CharField(_('full name'), max_length=100, blank=True)
  3. 添加 URLconf 条目

    from .newsletter.models import Subscription
    
    from newsletter_subscription.backend import ModelBackend
    from newsletter_subscription.urls import newsletter_subscriptions_urlpatterns
    
    urlpatterns += patterns(
        '',
        url(
            r'^newsletter/',
            include(newsletter_subscriptions_urlpatterns(
                backend=ModelBackend(Subscription),
            )),
        ),
    )
  4. 使用 django.contrib.admin 注册自己的订阅模型。

  5. 如果您想使用内置的模板,请将 newsletter_subscription 添加到 INSTALLED_APPS。这些模板需要 Towel 的 towel_form_tags 模板标签库。

  6. 确保 Django 的 消息框架 已激活,并且消息包含在您的模板中,否则 django-newsletter-subscriptions 的通知将不会显示给用户。

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面