19

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

4

6 回答 6

14

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

于 2009-12-26T21:09:44.687 回答
10

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

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

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

于 2010-09-20T19:11:19.507 回答
7

也许,也许不是。拥有一个在 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}),
)

这足以让你前进吗?

于 2009-08-12T19:15:46.443 回答
2

我已经发布了 Emencia Django 通讯的截屏演示,如果你想看看http://www.emencia.fr/fr/solutions/newsletter/emencia-django-newsletter

它当然是开源的,可以在 github 上找到

我们也需要在 transifex 上的翻译贡献

于 2011-01-05T08:53:33.437 回答
1

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

于 2010-06-29T22:58:26.960 回答
0

试试djangolist

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

于 2009-08-12T19:29:58.770 回答