驗證的一些麻煩。
我在我的模板中使用了這個結構:
<form method="POST">
{% csrf_token %}
{{ formset.media.js }}
{% for form in formset %}
<p>{{ form }}</p>
{% endfor %}
<button type="submit" class="btn btn-primary">Send</button>
并在視圖中驗證:
def flow_type(request):
patternFormset = modelformset_factory(CashFlowPattern, fields='__all__')
if request.method == 'POST':
formset = patternFormset(request.POST)
if formset.is_valid():
formset.save()
formset = patternFormset()
template = 'cash_table/index.html'
context = {
# 'form': form,
'formset': formset
}
return render(request, template, context)
我在頁面上收到表單,但提交后沒有任何反應。
但是,如果我使用另一個模板構造它可以作業:
<form method="POST">
{% csrf_token %}
{{ formset.media.js }}
{{ formset }}
<button type="submit" class="btn btn-primary">Send</button>
</form>
但是后來我在同一行得到了所有新形式的欄位。
uj5u.com熱心網友回復:
我認為您需要{{ formset.management_form }}在模板中迭代表單集的表單,以便 Django 知道它是一個表單集,并且知道表單集中有多少個表單,等等......
<form method="POST">
{% csrf_token %}
{{ formset.management_form }}
{{ formset.media.js }}
{% for form in formset %}
<p>{{ form }}</p>
{% endfor %}
<button type="submit" class="btn btn-primary">Send</button>
當您使用時{{ formset }},管理會自動完成(這是一個快捷方式)。
來源:https ://docs.djangoproject.com/en/4.1/topics/forms/formsets/#custom-formset-validation
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/524042.html
標籤:django形式
