【发布时间】:2016-05-07 05:26:05
【问题描述】:
有没有办法阻止对提交的 Django ModelForm 进行验证?
原因是我在该表单中有两个选择字段,并且我使用 Ajax 更改了相关表。 因此,我需要重新加载表单以便能够选择新的/更改的值,并且我不想要所有的验证错误。
编辑:
我最初的计划是设置隐藏字段“刷新”并提交表单(Ajax)。 在 create_component 我想检查刷新的值,并返回渲染但未验证的表单并使用 jQuery 替换它。 我希望 form.is_valid() 触发验证过程,但不幸的是,如果我在不调用 is_valid 的情况下渲染表单,我会得到一个经过验证的表单。
views.py
def create_component(request):
if request.method == "POST":
form = ComponentForm(request.POST)
if request.POST.get('refresh',False):
return render(request, "component_form.html", {"form":form})
if form.is_valid():
form.save()
return redirect("material")
else:
form = ComponentForm()
return render(request, "create_component.html", {"form":form})
forms.py
class ComponentForm(ModelForm):
refresh = BooleanField(widget=HiddenInput, required=False)
class Meta:
model = Component
fields = ['name', 'articlenumber', 'manufacturer', 'vendor', 'price', 'picture', 'notes']
labels = {
'name': _('Bezeichnung'),
'manufacturer': _('Hersteller'),
'articlenumber': _('Artikelnummer'),
'vendor': _('Lieferant'),
'price': _('Preis'),
'notes': _('Notizen')
}
widgets = {
'picture': HiddenInput
}
【问题讨论】:
-
您应该发布有问题的相关代码,或者您尝试过什么。
标签: jquery django validation modelform