我有一个 django 页面,有两种形式:
class FooForm(forms.Form):
number = forms.CharField(
label = "Number",
)
num_forms = forms.CharField(
label = "Num Forms"
)
...
class BarForm(forms.Form):
name = forms.CharField(
label = "Name",
)
...
一个是显示为单个表单,另一个显示为表单集:
def myview(request):
...
num_forms = request.GET['num_forms'])
formsetFactory = formset_factory(BarForm, extra = num_forms)
formset = formsetFactory()
return render(request, 'template.html', {'form': FooForm(user), 'formset':formset, 'num_forms':num_forms)
我正在使用django-crispy-forms设置布局并在 template.html 中呈现它们,如下所示:
<form action="{% url myview %}" class="form-horizontal" method="post">
{% crispy form %}
{% if num_forms and num_forms > 0 %}
{% crispy formset formset.form.helper %}
{% endif %}
</form>
我想要的行为:一个字段form
指定要显示的表单数量formset
,因此在更新该字段formset
时会重新加载显示的表单数量。form
不应清除或修改中的其他字段数据。可以运行验证,但我希望选择控制何时发生这种情况。
有人可以指导我如何实现我的视图和/或模板以使其工作吗?谢谢!