У меня есть поле 'Reference_Number' как в моей форме, так и в моей модели. Не следует сохранять форму, если это поле пустое, и если оно пустое, рядом с полем должно появиться сообщение об ошибке клиента.
У меня настроено это в данный момент, как вы видите ниже, но все же я просто получите django стандартное сообщение «Пожалуйста, заполните это поле». Какие изменения мне нужно сделать, чтобы показать сообщение об ошибке, которое я определил в forms.py?
models.py
class PackingList(models.Model):
Reference_Number = models.CharField(max_length=100, null=True)
....
forms.py
class PackingListForm(forms.ModelForm):
class Meta:
model = PackingList
fields = ['Reference_Number']
def Clean_Reference_Value(self):
Ref = self.cleaned_data.get('Reference_Number')
if not Ref:
raise forms.ValidationError('This field is required') #this is the message that should show
packlist. html (шаблон)
...
<td colspan="1">Reference: {{ form.Reference_Number }} {% for error in form.Reference_Number.errors %}<p>{{ error }}</p> {% endfor %}</td>
...
views.py
def PackingListView(request):
if request.method == "POST":
form = PackingListForm(request.POST)
if form.is_valid():
if 'preview' in request.POST:
request.session['data'] = form.cleaned_data
return redirect('myview')
elif 'save' in request.POST:
form.save()
messages.success(request, "Success: Packing List Has Been Created!")
return redirect('HomeView')
else:
form = PackingListForm()
return render(request, 'packlist.html', {'form': form})