一个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
软件包的问题时,请准备一个公开的存储库,其中包含您正在报告的问题。清晰的再现是实现分辨率的最佳方式。
贡献
这是一个开源项目,任何贡献都将受到高度赞赏。
在您的机器上进行测试和实验
此存储库包括Dockerfile
和docker-compose.yml
文件,因此您可以轻松设置并开始在本地机器上的容器内运行django-bootstrap-modal-forms
。您在bootstrap_modal_forms
、examples
和test
文件夹中所做的任何更改都会反映在容器中(请参阅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设置为formURL
modalForm
的属性。
异步创建/更新,在提交时使用或不使用模式关闭
设置asyncUpdate
和asyncSettings
设置,以创建或更新对象,而无需将页面重定向到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(删除表单)
定义表单是否用于删除。删除表单应设置为true
。Default: false
错误类别
为有错误的表单字段设置自定义类。Default: ".invalid"
异步更新
设置表单提交后的异步内容更新。Default: false
异步设置关闭提交
设置表单提交后模态是否关闭。Default: false
asyncSettings.successMessage(异步设置成功消息)
设置提交成功后显示的successMessage。应设置为字符串定义消息元素。参见上面的asyncSuccessMessage
示例。Default: null
异步设置数据URL
设置返回新queryset的视图的url=所有对象加上异步更新后新建或更新的对象。Default: null
asyncSettings.dataElementId
设置重新发送异步更新查询集的元素的id
。Default: 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 使用django-bootstrap4插件时,使表单呈2列或其他列分布时的写法
python测试开发django-188.Bootstrap折叠(Collapse)插件