Каждая валидация формы в наборе форм

Некоторые проблемы с валидацией.

Я использую эту конструкцию в своем шаблоне:

<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>

Но затем я получаю все поля новой формы в одной строке.

Я думаю, что вам нужно иметь {{ 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

Вернуться на верх