私は2つのフォームを持つ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",
)
...
1 つは単一のフォームとして表示され、もう 1 つはフォームセットとして表示されます。
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
消去または変更しないでください。検証は実行できますが、いつ実行するかを制御するオプションが欲しいです。
これを機能させるためにビューやテンプレートを実装する方法を教えてもらえますか? ありがとう!