Django中的复杂表单控件
我在寻找一些好的辅助库,用来在Django中生成一个比较复杂的表单。
动态字段依赖:比如说,如果选择了选项a,就会显示或隐藏某些字段,并且根据选择的选项,某些字段是必须填写的。
添加更多:点击“添加更多”按钮时,可以复制一些控件。
这正是ToscaWidgets能够处理的事情。
目前我用一些jquery代码来管理这个,但并不是很满意。而且因为某些原因,无法使用ToscaWidgets。
谢谢大家!
2 个回答
3
我使用了一个高度定制的 Formset
,做了一个相当复杂的表单,这个表单还涉及到复杂的用户权限依赖关系。为了实现这个功能,我创建了一个新的类,继承了 django.forms.formsets.BaseFormSet
,并重写了 __init__
、add_fields
、is_valid
和 save
方法,当然还用了一个定制的 Form
。最终的产品有点复杂,但经过大约六个月的时间,我仍然能理解和修改它。
我没有利用 Formset
添加和删除子表单的功能,但这个方法应该能满足你的需求。
文档链接在这里: http://docs.djangoproject.com/en/1.1/topics/forms/formsets/
2
经过一番搜索,我找到了解决办法。这个叫做 django-dynamic-formset 的东西,是基于 Django 的表单集合,能够满足我的需求。真是个了不起的作品!
附言:稍后我会尝试添加一些截图。