gpt4 book ai didi

Django 表单集不验证

转载 作者:行者123 更新时间:2023-12-04 04:08:31 25 4
gpt4 key购买 nike

我正在尝试保存表单集,但它似乎绕过 is_valid() 即使有必填字段。

为了测试这个,我有一个简单的表格:

class AlbumForm(forms.Form):
name = forms.CharField(required=True)

风景:
@login_required
def add_album(request, artist):
artist = Artist.objects.get(slug__iexact=artist)
AlbumFormSet = formset_factory(AlbumForm)
if request.method == 'POST':
formset = AlbumFormSet(request.POST, request.FILES)
if formset.is_valid():
return HttpResponse('worked')
else:
formset = AlbumFormSet()
return render_to_response('submissions/addalbum.html', {
'artist': artist,
'formset': formset,
}, context_instance=RequestContext(request))

和模板:
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %}
{{ formset.management_form }}
{% for form in formset.forms %}
<ul class="addalbumlist">
{% for field in form %}
<li>
{{ field.label_tag }}
{{ field }}
{{ field.errors }}
</li>
{% endfor %}
</ul>
{% endfor %}
<div class="inpwrap">
<input type="button" value="add another">
<input type="submit" value="add">
</div>
</form>

最终发生的事情是我在没有输入名称的情况下点击了“添加”,然后 HttpResponse('worked') get 被调用,似乎假设它是一个有效的表单。

我可能在这里遗漏了一些东西,但我看不出有什么问题。我想要发生的是,就像任何其他表单一样,如果该字段需要在未填写时吐出错误。有任何想法吗?

最佳答案

呵呵,我也遇到了同样的问题。问题是您使用的是表单集!!表单集允许表单中的所有字段为空。但是,如果您有 2 个字段,并且只填写一个,那么它会识别您需要的东西。这样做是因为表单集是为“批量添加”而制作的,有时您不想填写页面上的所有额外表单。真烦人;你可以看到my solution这里。

关于Django 表单集不验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2452131/

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