Любой, кто может объяснить мне, почему моя ошибка ValidationError в моей форме не работает? Я вижу «TEXT» в моем терминале, но ошибка ValidationError не отображается.
Forms.py
def clean(self):
cleaned_data = super(CheckInForm, self).clean()
new_room = cleaned_data.get('room')
new_name = cleaned_data.get('name')
if Student.objects.filter(room=new_room).count() > 3:
if not Student.objects.filter(room=new_room, name__icontains=new_name):
print('TEXT')
raise ValidationError('The room is full')
Стоит также отметить, что аналогичная функция def clean_room(self):
отлично работает в моем коде. В этой функции raise ValidationError
работает правильно.
def clean_room(self):
new_room = self.cleaned_data['room']
if new_room == '':
raise ValidationError('This field cannot be empty')
return new_room
Полная длина кода:
class CheckInForm(forms.ModelForm):
class Meta:
model = Student
fields = ['room', 'name', 'faculty', 'place_status', 'form_studies',
'group', 'sex', 'mobile_number', 'fluorography', 'pediculosis',
'contract_number', 'agreement_date', 'registration', 'citizenship',
'date_of_birthday', 'place_of_birthday', 'document_number', 'authority',
'date_of_issue', 'notation'
]
widgets = {'room': forms.TextInput(attrs={'class': 'form-control'}),
'name': forms.TextInput(attrs={'class': 'form-control'}),
'faculty': forms.TextInput(attrs={'class': 'form-control'}),
}
def clean(self):
cleaned_data = super(CheckInForm, self).clean()
new_room = cleaned_data.get('room')
new_name = cleaned_data.get('name')
if Student.objects.filter(room=new_room).count() > 3:
if not Student.objects.filter(room=new_room, name__icontains=new_name):
print('TEXT')
raise ValidationError('The room is full')
def clean_room(self):
new_room = self.cleaned_data['room']
if new_room == '':
raise ValidationError('This field cannot be empty!')
return new_room
{% extends 'hostel/base_home.html' %}
{% block check_in %}
<form action="{% url 'check_in_update_url' id=student.id %}" method="post">
{% csrf_token %}
{% for field in bound_form %}
<div class="from-group">
{{ field.label }}
{{ field }}
{% for error in form.non_field_errors %}
{{error}}
{% endfor %}
{% if field.errors %}
<div class="alert alert-danger">
{{ field.errors }}
</div>
{% endif %}
</div>
{% endfor %}
<button type="submit" class="btn btn-primary">Update</button>
</form>
{% endblock %}