【发布时间】:2019-06-18 07:37:32
【问题描述】:
当我提交在 django 中实现的表单后出现一些错误时,它会显示在我有 form.errors 的页面顶部。在这里,我希望该错误显示在由于错误发生的字段旁边,就像在 django 用户创建表单中一样。此外,输入的值在错误消息之后都消失了。怎么办??
forms.py
class AddVendorForm(forms.ModelForm):
class Meta:
model = Vendor
fields = '__all__'
views.py
def add_vendor(request):
if request.method == 'POST':
form = AddVendorForm(request.POST or None)
if form.is_valid():
vendor = form.save(commit=False)
vendor.save()
messages.success(request, '{} vendor added.'.format(vendor.name))
return redirect('add_vendor')
else:
form = AddVendorForm()
return render(request, 'add_vendor.html', {'form': form})
模板
{% if form.errors %}
<div class="alert alert-danger">
{{ form.errors }}
</div>
{% endif %}
<form action="{% url 'add_vendor' %}" method="post">
{% csrf_token %}
<h5>Name <span class="text-danger"></h5>
<input type="text" name="name" class="form-control" required>
<h5>Address <span class="text-danger"></h5>
<input type="text" name="address" class="form-control" >
<h5>Contact Number <span class="text-danger"></h5>
<input type="text" name="contact" class="form-control" required>
<button type="submit" class="btn btn-info">Add</button>
</form>
【问题讨论】:
-
这在文档本身和几十个教程中都有解释。
-
能否提供一些链接
-
我为什么要这样做?阅读您使用的工具的文档是您的工作。
标签: django django-forms