Django 时事通讯应用程序

Posted

技术标签:

【中文标题】Django 时事通讯应用程序【英文标题】:Django Newsletter App 【发布时间】:2010-11-19 01:40:51 【问题描述】:

是否有任何适用于 django 的时事通讯应用程序,允许用户订阅-取消订阅时事通讯?我想要一个易于使用和通过 Django 管理员管理的应用程序。

【问题讨论】:

【参考方案1】:

也许,也许不是。拥有一个在 Newsletter(无论如何想象的)和订阅者(​​User 或 firstName/lastName/emailAddress/password 上的外键)之间具有多对多关联的应用程序并不难。

你的模型应该是这样的:

from django.db import models
from django.contrib.auth.models import User

class Subscriber(models.Model):
    user = models.ForeignKey(User)
    email = models.EmailField()

    def __unicode__(self):
        return "User %s" % (self.user.username, )

    @models.permalink
    def get_absolute_url(self):
        return ('subscriber', None, 'object_id' : self.id)

    class Meta:
        ordering = [ "id" ]

class Newsletter(models.Model):
    name = models.CharField(max_length=80)
    subscribers = models.ManyToManyField('Subscriber')
    # .... Other stuff

    def __unicode__(self):
        return "Newsletter %s" % (self.name, )

    @models.permalink
    def get_absolute_url(self):
        return ('newsletter', None, 'object_id' : self.id)

    class Meta:
        ordering = [ "id" ]

你的 urls.py 应该是这样的:

from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('',
    url(r'^subscriber/(?P<object_id>\d+)/$', views.subscriberview, name='subscriber_view'),
    url(r'^newsletter/(?P<object_id>\d+)/$'', views.newsletterview,name='newsletter_view'),
    url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', 'document_root': MEDIA_ROOT),
)

这足以让你继续前进吗?

【讨论】:

【参考方案2】:

试试djangolist

DjangoList 是一个 django 应用程序,它将 允许进行群发邮件和管理 用户可以从中获取的时事通讯 订阅/取消订阅。 DjangoList 是 目前正在开发中,不是 可以使用了。

【讨论】:

不幸的是,djangolist 链接现在已损坏。 正如ohloh.net/p/djangolist 所指出的,这似乎是一个死/失踪的项目。【参考方案3】:

你应该看看这个项目https://github.com/emencia/emencia-django-newsletter

【讨论】:

链接已损坏。现在似乎在github.com/emencia/emencia-django-newsletter【参考方案4】:

我决定创建自己的解决方案来组合文本和处理订阅,但我想我将使用django-mailer 来跟踪发送的内容以及它是如何结束的。

【讨论】:

【参考方案5】:

您可能想看看我的应用程序,简称为django-newsletter。它允许管理多个时事通讯、用户订阅(他们不必提供他们的电子邮件地址或确认任何内容,并使用数据库中的模板来获取消息(支持文本和 html)。该应用程序目前正在生产中使用并且计划在大约一周内发布 0.1 版本。

对于大量提交,我建议使用 Postmark 之类的东西,它也可以与 Django 一起使用。 (这可以很容易地与时事通讯应用程序一起使用,只要我从使用 Django 的旧 (SMTP) 邮件 API 转移到新的后端不可知的 API。

但可以肯定的是,如果您只需要简单的订阅管理,您可以使用 'github.com slash howiworkdaily slash' django-newsletter 就可以了。 (是的,我们是第一个使用该名称的人。:P 对 URL 感到抱歉 - 但显然 *** 使用了某种荒谬的垃圾邮件预防机制。)

【讨论】:

当我有大量订阅时,我无法在管理员中打开添加提交屏幕。 如果您合并此项目,AGPL 许可证是否要求您发布整个 Django 站点的源代码?【参考方案6】:

如果你想看看http://www.emencia.fr/fr/solutions/newsletter/emencia-django-newsletter

,我已经发布了 Emencia Django Newsletter 的截屏演示

它当然是在 github 上开源的

我们也需要对 transifex 的翻译做出贡献

【讨论】:

以上是关于Django 时事通讯应用程序的主要内容,如果未能解决你的问题,请参考以下文章

iPad Gmail 帐户时事通讯中的空白间隙

Django Admin,保存时调用函数

迭代 Django 中的相关对象:循环查询集或使用单行 select_related(或 prefetch_related)

php 时事通讯 - 获取所有活动时事通讯

类时事通讯不存在(mailchimp 时事通讯):laravel

magento 时事通讯