Когда после отправки формы, реализованной в 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>