跳转到主要内容

向django CMS的结构板添加表单编辑器。

项目描述

pypi coverage python django djangocms djangocms4

djangocms-form-builder 支持渲染样式化的表单。目标是紧密集成表单到网站设计中。 djangocms-form-builder 允许在一页上放置尽可能多的表单。所有表单都是基于xhr的。为此, djangocms-form-builder 扩展了django CMS插件模型,允许表单插件接收xhr post请求。

使用 djangocms-form-builder 管理表单有两种不同的方式

  1. 使用django CMS强大的结构板构建表单。 这既快又简单。它可以与其他设计元素无缝集成,特别是网格元素,允许设计简单的响应式表单。

    可以通过表单配置表单操作。内置操作包括将结果保存到数据库以供以后评估和将提交的表单邮寄给网站管理员。还可以注册其他表单操作。

  2. django CMS v4djangocms-alias 一起使用,以便集中管理表单。Djangocms-alias 成为您的表单编辑器,可以通过引用它们的别名将表单放置在页面上。

  3. 使用djangocms-form-builder注册特定应用的表单。如果您已经有表单,可以使用djangocms-form-builder进行注册,并允许编辑器在表单插件中使用它们。如果您只有简单的布局要求,djangocms-form-builder允许您像使用管理表单一样使用字段集。

关键特性

反馈

该项目处于早期阶段。所有反馈都受欢迎!请通过fsbraun(at)gmx.de给我发邮件。

此外,也欢迎所有贡献。

贡献

这是一个开源项目。我们很高兴收到您以问题和拉取请求形式提供的反馈。在提交您的拉取请求之前,请查阅我们的贡献指南

我们感谢所有帮助创建和维护此包的贡献者。贡献者名单在贡献者部分。

安装

手动安装

  • 运行 pip install djangocms-form-builder

  • 运行 pip install git+https://github.com/fsbraun/djangocms-form-builder@master#egg=djangocms-form-builder

  • djangocms_form_builder 添加到您的 INSTALLED_APPS 中。(如果您同时使用 djangocms-frontend 和 djangocms-form-builder,请在 djangocms-frontend 后添加它

  • 运行 python manage.py migrate

用法

使用django CMS的结构板创建表单

首先创建一个 Form 插件以添加表单。使用结构板创建的每个表单都需要一个唯一的标识符(格式化为slug)。

通过向表单插件添加子类来添加表单字段。子类可以是表单字段,也可以是任何其他CMS插件。CMS插件可以用于添加自定义格式化或向表单添加附加的帮助文本。

表单字段

目前支持以下表单字段

  • CharField,EmailField,URLField

  • DecimalField,IntegerField

  • Textarea

  • DateField,DateTimeField,TimeField

  • SelectField

  • BooleanField

Form插件不得在另一个Form插件中使用。

操作

在有效表单提交后可以执行操作。一个项目可以注册任意多的操作

from djangocms_form_builder import actions

@actions.register
class MyAction(actions.FormAction):
    verbose_name = _("Everything included action")

    def execute(self, form, request):
        ...  # This method is run upon successful submission of the form

使用djangocms-form-builder与(现有的)Django表单

Form 插件还提供了访问已与djangocms-form-builder注册的Django表单的方法

from djangocms_form_builder import register_with_form_builder

@register_with_form_builder
class MyGreatForm(forms.Form):
    ...

或者您也可以在代码的任何其他地方通过运行 register_with_form_builder(AnotherGreatForm) 进行注册。

默认情况下,类名被转换为人类可读的表单(MyGreatForm -> "My Great Form")。可以使用Meta类添加其他信息

@register_with_form_builder
class MyGreatForm(forms.Form):
    class Meta:
        verbose_name = _("My great form")  # can be localized
        redirect = "https://somewhere.org"  # string or object with get_absolute_url() method
        floating_labels = True  # switch on floating labels
        field_sep = "mb-3"  # separator used between fields (depends on css framework)

详细名称将在表单插件的Select字段中显示。

表单提交后,将执行表单的 save() 方法(如果有的话)。在执行 save() 方法后,用户将被重定向到 redirect 属性中给出的URL。

Django表单不可用操作。应在其 save() 方法中执行提交时应执行的所有操作。

项目详情


下载文件

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

源代码分发

djangocms_form_builder-0.1.1.tar.gz (45.4 kB 查看哈希值)

上传时间 源代码

构建分发

djangocms_form_builder-0.1.1-py3-none-any.whl (76.1 kB 查看哈希值)

上传时间 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面