Я создаю свой первый веб-сайт с помощью Django и столкнулся, как мне кажется, с очень странной проблемой. У меня есть форма на странице, и я хочу, чтобы, если пользователь вводит неверные данные в одно из ее полей, это поле помечалось определенным стилем CSS.
Что я сделал, так это написал метод проверки ( «clean()»), который проверяет введенные пользователем данные. Если он не проходит проверку, к виджету этого ввода добавляется класс «ошибка». Затем, используя CSS, я придаю этому классу .error особый стиль. Вот проблема: стиль ошибки неправильно применяется к полям «имя», «последний». имя» и «электронная почта» формы. Например, когда вы вводите неверную фамилию, поля «фамилия» и «имя» выделяются красным, а когда вы вводите неверный адрес электронной почты, поля «электронная почта» и «имя» выделяются.
Я просмотрел файл «forms.py» тысячу раз и не могу понять, в чем дело.
Вот код файла form.py:
Я создаю свой первый веб-сайт с помощью Django и столкнулся, как мне кажется, с очень странной проблемой. У меня есть форма на странице, и я хочу, чтобы, если пользователь вводит неверные данные в одно из ее полей, это поле помечалось определенным стилем CSS. Что я сделал, так это написал метод проверки ( «clean()»), который проверяет введенные пользователем данные. Если он не проходит проверку, к виджету этого ввода добавляется класс «ошибка». Затем, используя CSS, я придаю этому классу .error особый стиль. [b]Вот проблема: стиль ошибки неправильно применяется к полям «имя», «последний». имя» и «электронная почта» формы. Например, когда вы вводите неверную фамилию, поля «фамилия» и «имя» выделяются красным, а когда вы вводите неверный адрес электронной почты, поля «электронная почта» и «имя» выделяются. [/b] Я просмотрел файл «forms.py» тысячу раз и не могу понять, в чем дело. Вот код файла form.py: [code]from django import forms from .models import Appointment
def clean_name(self): name = self.cleaned_data["name"]
if not name.isalpha(): self.fields['name'].widget.attrs['class'] += ' error' raise forms.ValidationError("Please, input only letters", code="carac_esp")
if not last-name.isalpha(): self.fields['last-name'].widget.attrs['class'] += ' error' raise forms.ValidationError("Please, input only letters", code="carac_esp")
if not any(email.endswith(domain) for domain in allowed_domains): self.fields['email'].widget.attrs['class'] += ' error' raise forms.ValidationError("Please, input a valid email address", code="email_invalid")
return email [/code] [b]И чтобы вы могли увидеть, есть ли что-то не так с HTML, вот часть кода, в которой объявлена форма:[/b] [code]
{% csrf_token %}
{{ form.non_field_errors }}
{{ form.name}}
{{ form.last-name}}
{{ form.email }}
Save
[/code] Это сводило меня с ума весь последний месяц. Пожалуйста, кто-нибудь помогите!