是否有任何适用于 django 的时事通讯应用程序,允许用户订阅-取消订阅时事通讯?我想要一个易于使用和通过 Django 管理员管理的应用程序。
6 回答
您可能想看看我的应用程序,简称为django-newsletter。它允许管理多个时事通讯、用户订阅(他们不必提供他们的电子邮件地址或确认任何内容,并使用数据库中的模板来获取消息(支持文本和 HTML)。该应用程序目前正在生产中使用并且计划在大约一周内发布 0.1 版本。
对于大量提交,我建议使用 Postmark 之类的东西,它也可以与 Django 一起使用。(这可以很容易地与时事通讯应用程序一起使用,只要我从使用 Django 的旧(SMTP)邮件 API 转移到新的后端不可知的 API。
但可以肯定的是,如果您只需要简单的订阅管理,您就可以使用 'github.com slash howiworkdaily slash' django-newsletter 来做到这一点。(是的,我们是第一个使用该名称的人。:P 对 URL 感到抱歉 - 但显然 stackoverflow 使用了某种荒谬的垃圾邮件预防机制。)
也许,也许不是。拥有一个在 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}),
)
这足以让你前进吗?
我已经发布了 Emencia Django 通讯的截屏演示,如果你想看看http://www.emencia.fr/fr/solutions/newsletter/emencia-django-newsletter
它当然是开源的,可以在 github 上找到
我们也需要在 transifex 上的翻译贡献
我决定创建自己的解决方案来组装文本和处理订阅,但我想我将使用django-mailer来跟踪发送的内容以及它是如何结束的。
DjangoList 是一个 django 应用程序,它允许进行群发邮件和管理用户可以订阅/取消订阅的时事通讯。DjangoList 目前正在开发中,尚未准备好使用。