POST 요청의 데이터를 사용하여 Django formset을 채우려고합니다. 나는 formset을 적절히 표시 할 수 있었고 거의 다시 올바르게 인스턴스화 할 수 있었지만, formset이 끝에는 2 개의 빈 행으로 끝나는 문제가있어 바람직하지 않습니다. 다음은 우리가 views.py에서 사용했던 기능입니다 :POST 데이터를 기반으로 Django formset에 새 양식 추가
<form action="" method="post">
{{formset.management_form}}
{% for form in formset.forms %}
{{form.errors }}
{% for field in form %}
{{field.label}}: {{field}}
{% endfor %}
<br />
{% endfor %}
<input type="submit" name="add" value="Add Deposit"></input>
</form>
dep.html
class DepositForm(forms.Form):
InsID = forms.IntegerField()
DepositTypeID = forms.IntegerField()
DepositAmount = forms.IntegerField()
Account = forms.IntegerField()
DepositFormSet = formset_factory(DepositForm, extra=1)
views.py
def _DepositEditor(request, c):
if request.POST.has_key('form-0-InsID'):
formset = DepositFormSet(request.POST)
if formset.is_valid():
formset = DepositFormSet(initial=formset.cleaned_data)
else:
formset = DepositFormSet()
c['formset'] = formset
return render_to_response('deposits/dep.html', c)
forms.py 그건해야 모든 관련 코드가 있어야합니다. 어쨌든, 템플릿은 빈 행을 포함해야하는 전체 formset을 표시합니다 (또는 오류의 경우 빈 행이 아니라 마지막 행 위에 오류 메시지가 있음). 마지막 줄이 비어있는 상태에서 "추가"를 클릭하면 문제가 발생합니다. 코드에서 여전히 formset.is_valid()를 전달하므로 추가 필드가있는 새 formset을 만듭니다. 여기에 추가를 클릭하면 오류와 함께 반환되지만 마지막 행을 제외한 모든 항목을 채우고 유효한 formset을 만들 수 있습니다. 빈 양식이 유효성 검사에 실패해야한다는 것을 내 formset에 알리는 방법이 있습니까? 또는 이와 반대로 더 나은 방법이 있습니까? 페이지는 궁극적으로 일부 jquery 항목을 통합하도록 계획되었으므로 이상적인 것은 아니지만 jquery 도구를 사용하여이 문제를 해결할 수있는 좋은 방법이 있다면 충분할 것입니다. 고마워요! 당신의 views.py에서
은 그것을 짓을 할 수 있습니다. 고마워요! –
당신은 환영합니다 :) –