Django中的复杂表单控件

7 投票
2 回答
1455 浏览
提问于 2025-04-15 21:54

我在寻找一些好的辅助库,用来在Django中生成一个比较复杂的表单。

  • 动态字段依赖:比如说,如果选择了选项a,就会显示或隐藏某些字段,并且根据选择的选项,某些字段是必须填写的。

  • 添加更多:点击“添加更多”按钮时,可以复制一些控件。

这正是ToscaWidgets能够处理的事情。

目前我用一些jquery代码来管理这个,但并不是很满意。而且因为某些原因,无法使用ToscaWidgets。

谢谢大家!

2 个回答

3

我使用了一个高度定制的 Formset,做了一个相当复杂的表单,这个表单还涉及到复杂的用户权限依赖关系。为了实现这个功能,我创建了一个新的类,继承了 django.forms.formsets.BaseFormSet,并重写了 __init__add_fieldsis_validsave 方法,当然还用了一个定制的 Form。最终的产品有点复杂,但经过大约六个月的时间,我仍然能理解和修改它。

我没有利用 Formset 添加和删除子表单的功能,但这个方法应该能满足你的需求。

文档链接在这里: http://docs.djangoproject.com/en/1.1/topics/forms/formsets/

2

经过一番搜索,我找到了解决办法。这个叫做 django-dynamic-formset 的东西,是基于 Django 的表单集合,能够满足我的需求。真是个了不起的作品!

附言:稍后我会尝试添加一些截图。

撰写回答