html - 如果我的 Django 应用程序中的字段为空,请添加一条消息
问题描述
所以我有一个 Django 表单,我想要的是,如果没有填写,它会在每个字段下显示一条消息(如红色)。我尝试在每个字段的小部件中添加“error_messages”属性,但它不起作用。
我的forms.py:
class WordForm(forms.Form):
Word1 = forms.CharField(error_messages={'required': 'Please enter a word'}, required = True, label= 'Word1',
widget= forms.TextInput(attrs={
'class': "form-control is-invalid",
'placeholder': 'Enter First Word'
}))
Word2 = forms.CharField(error_messages={'required': 'Please enter a word'}, required = True, label= 'Word2',
widget= forms.TextInput(attrs={
'class': 'form-control is-invalid needs-validation was-validated',
'placeholder': 'Enter Second Word'
}))
Word3 = forms.CharField(error_messages={'required': 'Please enter a word'}, required = True, label= 'Word3',
widget= forms.TextInput(attrs={
'class': 'form-control is-invalid',
'placeholder': 'Enter Third Word'
}))
Result = forms.CharField(label= 'Result', required=False,
widget= forms.TextInput(attrs={'class': 'form-control', 'readonly': 'True'}))
我的form.html:
<form method="post" class="needs-validation was-validated" novalidate>
{% csrf_token %}
<h2>Inputs</h2>
{{ form.as_p }}
</form>
如您所见,我在小部件中添加了错误消息字段和 is-invalid 类,但它不会做任何事情。我真的不知道我是否必须创建一个函数,因为我已经看到了那些反馈消息,但没有看到表单渲染。非常感谢您的帮助。
解决方案
您需要创建一个模板页面来呈现表单错误消息。你form_error.html
应该看起来像这样:
<form method="post" class="needs-validation was-validated" novalidate>
{% csrf_token %}
<h2>Inputs</h2>
{% for field in form %}
{{ field.label_tag }}
{{ field }}
{% if field.errors %}
{% for error in field.errors %}
<div class="your-css-alert-class">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
{% endfor %}
</form>
然后在你的view.py
,
def submit(request):
if request.method == "POST":
...
if form.is_valid():
...
else:
return render(request, 'form_error.html', {'form': form})
推荐阅读
- c# - asp.net 将记录插入数据库
- r - PAM 算法中初始中心点的选择
- c# - 查找范围之间的 IP(IPv4 和 IPv6)地址
- c# - C#调用Fortran:32位工作,64位无法加载fortran DLL
- java - 尝试两次将同一个孩子写到firebase
- xamarin - 真的可以使用 Xamarin Forms 共享所有视图和视图控制器吗?
- python - 在 Anaconda 环境中使用 Openvino 的 OpenCV 构建
- python - django 应用程序在 heroku TypeError 上崩溃:预期的 str、字节或 os.PathLike 对象,而不是函数
- svn - 每个仓库的 TortoiseSVN 代理设置,而不是全局?
- python-3.x - 在使用 PdfPages 时关闭 Tkinter 中的 pyplot 对象会导致 Tkinter 实例停止