我只想知道如何将初始值设置为empty_form。
我确实创建了带有额外表单初始值的Inlines而没有问题,但是,当用户点击添加按钮时,我希望它的字段初始值显示为空,我希望它具有与额外形式相同的初始值。
如何使empty_form填充初始数据?
提前致谢。
答案 0 :(得分:2)
Django并没有真正提供为空表单设置初始值的方法。我找到了几种解决方法:
示例:
formset = formset_factory(MyClass, **kwargs)
empty = formset.empty_form
# empty is a form instance, so you can do whatever you want to it
my_empty_form_init(empty_form)
formset.empty_form = empty_form
答案 1 :(得分:0)
我遇到了类似的问题,最终对我有用的是使用Django Dynamic Formset。 DDF所做的不是使用空表单来创建新的表单集,而是使用其中一个extra_forms作为模板。默认行为是在将HTML插入DOM之前清除extra_form中的所有字段值,但您可以使用keepFieldValues
设置指定要保留的字段。
在我的情况下,我想保留所有隐藏的字段值:
$(function() {
$('#myForm_table tbody tr').formset({
keepFieldValues: 'input:hidden',
}
});
});
当然,如果您愿意,可以绕过Django Dynamic Formsets并使用Javascript实现自己的添加/删除代码。