使用 Django ModelForm 显示错误时,通常是由于表单验证失败导致的。在这种情况下,您可以使用以下方法来显示错误:
{{ form.non_field_errors }}
显示所有字段的错误。{{ form.field_name.errors }}
显示特定字段的错误。例如,假设您有一个名为 MyModel
的模型,其中包含一个名为 title
的字段。您可以在模板中使用以下代码显示该字段的错误:
{% for error in form.title.errors %}
<p>{{ error }}</p>
{% endfor %}
此外,您还可以使用 Django 的内置表单验证器来自定义验证规则,以便更好地控制错误消息的显示。例如,您可以在表单类中添加一个名为 clean_title
的方法,以验证 title
字段的值:
from django import forms
from myapp.models import MyModel
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ['title']
def clean_title(self):
title = self.cleaned_data.get('title')
if 'badword' in title:
raise forms.ValidationError('Title contains a bad word.')
return title
在这个例子中,如果 title
字段包含 badword
,则会引发一个表单验证错误,并显示自定义错误消息 "Title contains a bad word."。
最后,您还可以使用 Django 的内置表单验证器来自定义验证规则,以便更好地控制错误消息的显示。例如,您可以在表单类中添加一个名为 clean_title
的方法,以验证 title
字段的值:
from django import forms
from myapp.models import MyModel
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
fields = ['title']
def clean_title(self):
title = self.cleaned_data.get('title')
if 'badword' in title:
raise forms.ValidationError('Title contains a bad word.')
return title
在这个例子中,如果 title
字段包含 badword
,则会引发一个表单验证错误,并显示自定义错误消息 "Title contains a bad word."。
希望这些信息能够帮助您解决使用 Django ModelForm 显示错误的问题。如果您有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云