gpt4 book ai didi

python - 通用 FormView 中的 Django Formset

转载 作者:行者123 更新时间:2023-12-03 21:40:26 25 4
gpt4 key购买 nike

嗨,我在通用 FormView 中使用了表单集,如下所示:

class RequestRecommendationView(FormView):
template_name = "account/stepfour.html"
form_class = formset_factory(StepFourForm)

def form_valid(self,form):
print form.is_valid()
cleaned_data = form.cleaned_data
# return redirect(reverse("some_url_name"))

formset_factory 的表单是这样的:
class StepFourForm(forms.Form):
contact_person = forms.CharField(required=True)
email = forms.EmailField(required=True)
company = forms.CharField(required=True)
request_message = forms.CharField(required=True)

我的 html 结构是这样的:
<div style="padding-top:100px;padding-left:10px;">
<h4> Request a Recommendation </h4>
<form method="post" action="">
{% csrf_token %}

<table id="myForm">
<tbody>
{% for f in form %}
{% for field in f %}
<tr>
<td>{{field.label_tag}}</td>
<td>{{field}}</td>

{% for error in field.errors %}
<td><span>{{ error }}</span></td>
{% endfor %}
</tr>
{% endfor %}
{% endfor %}
</tbody>
</table>

<button class="btn btn-primary btn-xlarge" type="submit" name="submit">Request Now</button>
{{ form.management_form }}
</form>
</div>

然后我使用了 django-dynamic-formset ( https://code.google.com/p/django-dynamic-formset/ )
通过这些添加/删除额外的表格:
<script type="text/javascript">
$(function() {
$('#myForm tbody').formset();
})
</script>

问题是:
如果我将表单留空(每个字段都是必需的),它会设法到达我的类 View 的 form_valid()(尽管它不应该),如果我填写其中一个字段(不填写其他字段),它会显示错误关联消息成功。为什么会这样?我该怎么做才能解决它?是否提供 form_class 一个表单集是所有这一切的幕后推手?

最佳答案

这个问题是 6 年前被问到的,我发现它是因为我遇到了同样的问题,因为它没有得到解答,我将提供我找到的解决方案。
根据验证最少表单的文档,您必须提供 min_num并设置 validate_min=True在 formset_factory 中:
formset = formset_factory(your_form, min_num=2, validate_min=True, extra=2)

关于python - 通用 FormView 中的 Django Formset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18782241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com