Django时事通讯应用程序

时间:2009-08-12 18:35:22

标签: django newsletter

是否有django的新闻通讯应用程序,允许用户订阅 - 取消订阅时事通讯?我希望有一个易于使用的应用程序,并通过Django管理员进行管理。

6 个答案:

答案 0 :(得分:14)

答案 1 :(得分:9)

您可能需要查看我的应用,只需调用django-newsletter即可。它允许管理多个新闻简报,用户订阅(他们不必提供他们的电子邮件地址或确认任何内容,并使用数据库中的模板来获取消息(支持文本和HTML)。该应用程序目前正在生产中使用并且在大约一周内安排0.1版本。

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

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

答案 2 :(得分:6)

也许,也许不是。如果应用程序在新闻稿(无论是想象中的)和订阅者(​​用户或firstName / lastName / emailAddress /密码上的外键)之间存在多对多关联,那就太难了。

你的模型会是这样的:

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}),
)

这足以让你前进吗?

答案 3 :(得分:2)

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

,我已发布了Emencia Django时事通讯的截屏演示

它当然是github上提供的开源资源

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

尝试djangolist

  

DjangoList是一个django应用程序   允许进行群发邮件和管理   用户可以使用的新闻通讯   订阅/退订。 DjangoList是   目前正在开发中,而不是   随时可以使用。