一个Django插件,用于在Bootstrap模式中创建AJAX驱动的表单。

Posted

tags:

中文标题:一个Django插件,用于在Bootstrap模式中创建AJAX驱动的表单。 原文标题:A Django plugin for creating AJAX driven forms in Bootstrap modal. 项目评级:Star:363      Fork:135 下载地址:https://github.com/trco/django-bootstrap-modal-forms 详情介绍

Django Bootstrap模态形式

一个Django插件,用于在Bootstrap模式中创建AJAX驱动的表单。

目录

现场演示

演示

一般信息

打开一个问题

当报告django-bootstrap-modal-forms软件包的问题时,请准备一个公开的存储库,其中包含您正在报告的问题。清晰的再现是实现分辨率的最佳方式。

贡献

这是一个开源项目,任何贡献都将受到高度赞赏。

在您的机器上进行测试和实验

此存储库包括Dockerfiledocker-compose.yml文件,因此您可以轻松设置并开始在本地机器上的容器内运行django-bootstrap-modal-forms。您在bootstrap_modal_formsexamplestest文件夹中所做的任何更改都会反映在容器中(请参阅docker compose.yml),并且存储在sqlite3数据库中的数据是持久的,即使您删除了停止的容器。按照以下步骤运行应用程序:

测验

在项目文件夹中运行单元和功能测试:

安装

它是如何工作的?

用法

1.形式

定义BookModelForm并继承内置表单BSModalModelForm

2.表单的html

定义表单的html并将其保存为Django模板。

3.基于类的视图

定义一个基于类的视图BookCreateView,并从内置的泛型视图BSModalCreateView继承。BookCreateView处理#1中定义的表单,使用#2中定义的模板,重定向到success_url,显示success_message

4.视图的URL

在#3中定义视图的URL。

5.引导模式和触发元件

定义引导模式窗口和触发模式打开的html元素。

6.模态形式

将脚本从#5添加到模板中,并将modalForm绑定到触发器元素。将#4中定义的BookCreateView URL设置为formURLmodalForm的属性。

异步创建/更新,在提交时使用或不使用模式关闭

设置asyncUpdateasyncSettings设置,以创建或更新对象,而无需将页面重定向到successUrl,并定义表单提交后模态应关闭还是保持打开。关于asyncSettings的解释,请参阅下面示例中的注释和段落模式窗体选项。

请参阅有关如何在使用异步选项时正确地重新实例化所有CRUD按钮的模式表单的示例。

modalForm选项

模式ID

设置模态的自定义id。Default: "#modal"

模态内容

设置表单的html附加到的元素的自定义类。如果将modalContent更改为自定义类,则也应相应地更改modalForm。为了保持Bootstrap的模态风格,您应该复制modal-content的Bootstrap风格,并将其设置为您的新模态内容类。Default: ".modal-content"

模态形式

设置自定义表单选择器。Default: ".modal-content form"

表单URL

设置表单视图和html的url。Default: null

isDeleteForm(删除表单)

定义表单是否用于删除。删除表单应设置为trueDefault: false

错误类别

为有错误的表单字段设置自定义类。Default: ".invalid"

异步更新

设置表单提交后的异步内容更新。Default: false

异步设置关闭提交

设置表单提交后模态是否关闭。Default: false

asyncSettings.successMessage(异步设置成功消息)

设置提交成功后显示的successMessage。应设置为字符串定义消息元素。参见上面的asyncSuccessMessage示例。Default: null

异步设置数据URL

设置返回新queryset的视图的url=所有对象加上异步更新后新建或更新的对象。Default: null

asyncSettings.dataElementId

设置重新发送异步更新查询集的元素的idDefault: null

asyncSettings.dataKey

在提供更新查询集的视图返回的数据字典中,设置包含异步更新的查询集的关键字。Default: null

异步设置.addModalFormFunction

设置异步更新后在按钮(单个或所有CRUD按钮)上重新实例化事件侦听器所需的方法。Default: null

modalForm默认设置对象及其结构

形式

导入from bootstrap_modal_forms.forms import BSModalForm的表单。

BS模式窗体

继承PopRequestMixin和Django的forms.Form。

BS模式模型窗体

继承PopRequestMixin、CreateUpdateAjaxMixin和Django的forms.ModelForm。

混合物

导入from bootstrap_modal_forms.mixins import PassRequestMixin的混合蛋白。

PassRequestMixin(密码请求混合)

表格M

将请求放入表单的kwargs中的ixin。注意:使用这个mixin需要在表单的__init__的super中从dict中弹出请求kwarg。请参阅PopRequestMixin。

PopRequestMixin(弹出请求混合)

Form Mixin,从夸尔格中弹出请求并将其附加到表单的实例。注意:此mixin必须位于forms.ModelForm/forms.Form之前。表单不希望传入这些夸尔格,因此必须在执行其他操作之前将其弹出。

创建更新AjaxMixin

基于请求类型传递或保存对象的ModelForm Mixin。

删除消息混合

Generic View Mixin,它将消息添加到BSModalDeleteView,并且仅在请求不是ajax请求时调用post方法。在请求是ajax的情况下,post方法调用delete方法,该方法重定向到成功url。

表单验证混合

Generic View Mixin,用于保存对象,并在请求不是ajax请求时重定向到success_url。否则响应204不返回任何内容。

登录Ajax Mixin

通用视图混合,如果请求不是ajax请求,则对用户进行身份验证。

常规视图

导入from bootstrap_modal_forms.generic import BSModalFormView的通用视图。

B模式登录视图

Inhertis LoginAjaxMixin和Django的LoginView。

BS模式窗体视图

继承PassRequestMixin和Django的泛型.FormView。

BSModalCreate视图

继承PassRequestMixin、FormValidationMixin和generic.CreateView。

BSModal更新视图

继承PassRequestMixin、FormValidationMixin和generic.UpdateView。

BS模式读取视图

继承Django的generic.DetailView。

B模式删除视图

继承DeleteMessageMixin和Django的泛型.DeleteView。

示例

要查看django-bootstrap-modal-forms的实际操作,请克隆存储库并在本地运行示例:

示例1:引导模式下的注册表格

有关代码的所有部分如何协同工作的解释,请参阅段落用法。要测试此处提供的工作解决方案,请克隆并运行示例。

示例2:引导模式下的登录表单

有关代码的所有部分如何协同工作的解释,请参阅段落用法。要测试此处提供的工作解决方案,请克隆并运行示例。

您可以通过在settings.py中设置LOGIN_REDIRECT_URL来设置登录重定向。

您还可以通过以下方式设置自定义登录重定向:

示例3:Django的forms.ModelForm(CRUD表单)在Bootstrap模式中

有关代码的所有部分如何协同工作的解释,请参阅段落用法。要测试此处提供的工作解决方案,请克隆并运行示例。

示例4:Django的表单。Bootstrap模态中的表单

有关代码的所有部分如何协同工作的解释,请参阅段落用法。要测试此处提供的工作解决方案,请克隆并运行示例。

许可证

该项目获得麻省理工学院许可。

在 Django 中将值传递给 Bootstrap 模式

django 使用django-bootstrap4插件时,使表单呈2列或其他列分布时的写法

python测试开发django-188.Bootstrap折叠(Collapse)插件

Django Bootstrap 模式出现错误

Bootstrap 模式形式的 AJAX 实现(在 Django 上)

Django 应用程序无法正确加载 Twitter bootstrap 3 模式