具有垃圾邮件保护和i18n的django cms的可扩展联系人表单插件

cmsplugin-contact的Python项目详细描述


带有垃圾邮件保护和i18n的Django CMS联系表单插件。

由web用户输入的消息将转换为发送到电子邮件地址的电子邮件 为特定插件实例配置。

垃圾邮件保护由ReCAPTCHA(免费)或 Akismet(个人免费使用)。 访问相应的网站以获取激活您的保护方法所需的密钥 选择。

依赖关系

python库

如果决定使用recaptcha spam protection方法,则需要在debian中安装python库recaptcha-client(包python-recaptcha)。

如果使用Akismet进行垃圾邮件保护,则需要^{TT3}$。您还需要在django admin的“站点”部分中设置您的域url。

对于python版本<;2.7,importlib必须安装,因为importlib位于python 2.7的标准库中,但它是旧版本的第三方包。

所有库都可以由pipeasy_install安装。

建议但不要求使用南部。同样,它也可以通过pipeasy_install轻松安装。

安装

下载

来自PYPI

您只需输入终端pip install cmsplugin-contacteasy_install cmsplugin-contact

手动

您可以从github下载latest development version的zip存档。 解压缩您下载的文件。然后进入您的终端并将cd放入未打包的文件夹。然后在终端中键入python setup.py install

设置

'cmsplugin_contact'放入settings.py中的INSTALLED_APPS部分。如果您使用的是south,不要忘记同步数据库或迁移。

'cmsplugin_contact.middleware.ForceResponseMiddleware'放入settings.py中的MIDDLEWARE_CLASSES部分。

设置

默认电子邮件

用于发送邮件的电子邮件地址是从^{tt18}中提取的$ Django setting。 此外,将Reply-To:头设置为用户提供的电子邮件地址。

使用用户提供的地址发送邮件以设置电子邮件的From:头 当前不支持。 这是因为许多服务器将拒绝使用未注册的From:地址的电子邮件 那个服务器。 有些服务器还可能剥离Reply-To:头。为此,用户提供的电子邮件地址 也会添加到邮件正文中。

重述公钥和私钥

如果不想在管理界面中输入recatpcha键,可以通过这些设置提供它们。

Akismet_API键

与recaptcha for akismet相同。

cmsplugin_contact_forms

默认值:

(
    ('cmsplugin_contact.forms.ContactForm', _('default')),
)

您可以使用您的自定义contactform,只需添加一个新的元组,该元组的类路径和名称将显示给您的用户。

如果您想使用默认的ContactForm进行窃取,请在您的设置中这样做:

(
    ('cmsplugin_contact.forms.ContactForm', _('default')),
    ('my_app.forms.MyContactForm', _('My form')),
)

在自定义表单中,您可以设置要使用的模板,如下所示:

class MyContactForm(Form):
    ...
    template = 'path/to/my_contact_template.html'

编辑器

默认编辑器是django cms中的wymeditor。 插件尊重django cms的USE_TINYMCE设置。有关如何使用tinymce的更多信息,请参阅django cms文档。 如果您的INSTALLES_APPSckeditor中有包'djangocms_text_ckeditor',则使用该包。

延伸

请参见examples/cmsplugin_custom_contact如何子类 cmsplugin_contact并向其中添加自定义字段。您可以覆盖 子类ContactPlugin的属性并使用您自己的模板 还有课程。

信号

电子邮件已发送

发送联系人电子邮件后,将发出一个信号。你可以像这样使用它 这个:

from django.dispatch import receiver
from cmsplugin_contact.cms_plugins import email_sent


@receiver(email_sent)
def handle_signal(sender, **kwargs):
    print kwargs['data']

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从ImageIO中排除特定的TIFF读取器?   JavaJMockit和passbyreference。我们中一定有一个人错了(可能是我!)   java Android camera2放弃了牛轧糖的表面,但在棉花糖上工作   java按字符串中出现的顺序对字符数组进行排序   如何获取Groovy生成的java源代码   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java为什么我的冒泡排序代码会打印出这些奇怪的东西?   java JAXB:typesafeEnumMemberName=“generateName”是否可自定义?   Java编程输入:今天是星期天输出:星期天是今天   java不理解首个OOAD书的吉他示例   java如何从JformattedTextfield检索货币格式值   java可以从相同的源代码生成功能不同的可执行文件吗?