Проблема со стилизацией полей формы django при возникновении ошибок
У меня есть ошибка, которую я пытаюсь исправить уже несколько месяцев, но никак не могу понять. Я создаю сайт на Django. На сайте есть форма, в которой, помимо прочих полей, есть поле для ввода имени (называется "nombre") и поле для фамилии (называется "apellido") пользователя. Я объявил CSS-правило (применяется к полям с классом "error"), которое придает определенный стиль полям, не прошедшим проверку формы, выделяя их красным цветом. В файле "forms.py" я написал код, который присваивает класс "error" полям, не прошедшим валидацию. Проблема в том, что, когда я ввожу недопустимые данные в поле "apellido" и пытаюсь отправить форму, оба поля "apellido" и "nombre" подсвечиваются красным. Я понятия не имею, почему это может происходить. Полагаю, что дело в файле "forms.py", где я присваиваю класс "error" недействительным полям. Вот код файла "forms.py":
from django import forms
from .models import Turno
class TurnoForm(forms.ModelForm):
class Meta:
model = Turno
fields = ['nombre', 'apellido', 'email', 'fecha', 'hora']
widgets = {
"nombre": forms.TextInput(attrs={"class": "form-control", "name": "nombre"}),
"apellido": forms.TextInput(attrs={"class": "form-control", "name": "apellido"}),
"email": forms.EmailInput(attrs={"class": "form-control", "name": "email"}),
}
def clean_nombre(self):
nombre = self.cleaned_data["nombre"]
if not nombre.isalpha():
self.fields["nombre"].widget.attrs["class"] += " error"
raise forms.ValidationError("Por favor, ingrese solo caracteres alfabéticos", code="carac_esp")
return nombre
def clean_apellido(self):
"""
El fallo está en este campo. Al completarlo erróneamente se marca también el campo de "nombre" como incorrecto.
"""
apellido = self.cleaned_data["apellido"]
if not apellido.isalpha():
self.fields["apellido"].widget.attrs["class"] += " error"
raise forms.ValidationError("Por favor, ingrese solo caracteres alfabéticos", code="carac_esp")
return apellido
Как вы думаете, проблема где-то здесь?