跳转到主要内容

Django框架的简单新闻通讯应用。

项目描述

Informant是一个简单而灵活的应用,用于常见的新闻通讯发送功能,许多网站需要提供此类功能。它只提供一个常见的新闻通讯,具有选择加入/退出和邮件发送(HTML/文本替代)的管理命令。

安装

标准的Django方式

pip install django-informant

将其添加到您的INSTALLED_APPS

INSTALLED_APPS = (
    ..
    ..,
    'informant',
    ...
)

在您的settings.py中设置新闻通讯的电子邮件地址

NEWSLETTER_EMAIL = 'your@example.com

用法

模板

Informant提供了一些默认模板以供开始,但通常最好创建自己的定制模板。这些模板是

  • informant/management/subscribe_ok.html - 当订阅成功时的模板

  • informant/management/subscribe_error.html - 当出现错误时的模板

  • informant/management/unsubscribed.html - 当用户取消订阅时的模板

  • informant/mail/newsletter.html - 包含电子邮件结构的基模板

  • informant/mail/base.txt - 指向新闻通讯网络版本的文本替代

Informant使用新闻通讯文本作为Django模板。因此,在informant/mail/newsletter.html中创建基本块然后从它扩展到新闻通讯管理和覆盖特定的块,如您在真实模板中所做的那样非常有用。例如。

informant/mail/newsletter.html:

{% load i18n %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{% trans "lang" %}" lang="{% trans "lang" %}">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>{% block head %}{% endblock %}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>

在新闻通讯对象的内容字段中:

{% extends "informant/mail/newsletter.html" %}
{% block title %}My title{% endblock %}
{% block content %}My content{% endblock %}

Ajax订阅

如果您不想有单独的带有订阅表单的页面,Informant有一个jQuery插件可以处理。

该函数在 <form> 元素上调用。它期望表单已正确设置 action 属性并指向正确的 URL。请参阅示例

<form id="newsletterSubscribeForm" action="{% url "informant_subscribe" %}" method="post">
    <div>
        <label for="email">Enter your e-mail:</label>
        <div id="newsletterSubscribeResult"></div>
        {% csrf_token %}
        <input type="email" name="email" />
        <input type="hidden" name="surname" value="" />
    </div>
    <div>
        <input type="submit" value="Subscribe" class="button" />
    </div>
</form>

<script type="text/javascript">
    // JavaScript handler
    var subscribeForm = $('#newsletterSubscribeForm');
    subscribeForm.informantSubscribeForm({
        renderResults: true,
        resultContainer: $('#newsletterSubscribeResult')
    });
    subscribeForm.bind('informantSubscribeOk', function () {
       $(this).find('input').hide();
    });
</script>

JavaScript 插件默认不渲染任何结果。如果您希望它这样做,请提供如上所示的配置。插件将在成功或无效订阅的情况下触发 informantSubscribeOkinformantSubscribeError 事件。您可以使用 jQuery 的 .bind() 方法绑定到这些事件。

发送

Informant 提供了 send_newsletter 命令,该命令将使用 Django 设置中的电子邮件后端发送时事通讯。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

django-informant-1.1.0.tar.gz (11.3 kB 查看哈希)

上传时间