Skip to main content

一个可插入的可定制 Django 应用程序,用于收集站点访问者的反馈。

项目描述

Writeback 是一个可插入的可定制 Django 应用程序,用于收集使用 AJAX 的站点访问者的反馈。

安装

使用 pip 安装:

pip install django-writeback

快速开始

  • 将“写回”添加到您的 INSTALLED_APPS 设置中,如下所示:

    INSTALLED_APPS += ('writeback', )
  • 将上下文处理器添加到您的 TEMPLATE_CONTEXT_PROCESSORS 设置中,如下所示:

    TEMPLATE_CONTEXT_PROCESSORS += ('writeback.context.add_form', )
  • 指定电子邮件设置 WRITEBACK_EMAIL_NOTIFICATION_SUBJECT、WRITEBACK_EMAIL_NOTIFICATION_FROM 和 WRITEBACK_EMAIL_NOTIFICATION_TO_LIST。这些将用于电子邮件通知。

  • 运行python manage.py syncdb来同步数据库。

  • 运行python manage.py collectstaticpython manage.py collectstatic -i admin,如果您想省略为管理应用程序收集静态数据。

  • 在项目 urls.py 中包含 writeback URLconf,如下所示:

    url(r'^writeback/', include('writeback.urls')),
  • 修改您的基本模板:

    <!-- in header block -->
    {% include "writeback/header.html" %}
    
    <!-- in body block -->
    {% include "writeback/button.html" %}
  • 覆盖email_notification.htmlbutton.html模板。

模型定制

用于收集反馈的消息模型可以扩展:

  • 创建一个应用程序,例如带有文件的custom_writeback ,该文件应包含类声明,例如,命名为models.py 。

  • 将这个新创建的应用程序添加到您的INSTALLED_APPS设置中,如下所示:

    INSTALLED_APPS += ('custom_writeback', )
  • 重新声明您的抽象模型类,或者,如果您想扩展基本模型,请从writeback.models.MessageAbstract继承它,如下所示:

    from writeback.models import MessageAbstract
    
    
    class MyMessageAbstract(MessageAbstract):
        # define your custom fields
    
        class Meta(MessageAbstract.Meta):
            pass
  • 在项目的settings.py中注册您的课程:

    WRITEBACK_MESSAGE_BASE_MODEL = 'custom_writeback.models.MyMessageAbstract'
  • 定义一个用于新模型的新表格。

表单定制

如果您已经覆盖或自定义了Message模型,您很可能需要自定义表单。但即使您使用原始模型,您也可能希望更改表单clean()方法。

  • 创建一个应用程序,例如custom_writeback(如果您还没有),其中包含一个文件,该文件应包含类声明,将其命名为forms.py,例如。

  • 将这个新创建的应用程序添加到您的INSTALLED_APPS设置中,如下所示:

    INSTALLED_APPS += ('custom_writeback', )
  • 像这样声明你的新表单类:

    from django.utils.translation import ugettext_lazy as _
    from django.forms import ValidationError
    
    from writeback.forms import MessageCreateFormBase
    from writeback.models import Message
    
    
    class MessageCreateForm(MessageCreateFormBase):
        class Meta:
            model = Message
            exclude = ['date_created', 'middle_name', 'company', 'info']
    
        def clean(self):
            cleaned_data = super(MessageCreateFormBase, self).clean()
            name = cleaned_data.get("name")
            family_name = cleaned_data.get("family_name")
            phone = cleaned_data.get("phone")
            email = cleaned_data.get("email")
    
            if not (name or family_name or phone or email):
                raise ValidationError(_("Please, fill out at least one field."))
    
            return super(MessageCreateFormBase, self).clean()
  • 在项目的settings.py中注册您的课程:

    WRITEBACK_MESSAGE_BASE_FORM = 'custom_writeback.forms.MessageCreateForm'

项目详情


下载文件

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

源分布

django-writeback-0.3.9.tar.gz (51.3 kB 查看哈希)

已上传 source