0Pricing
Django Academy · Урок

is_valid и cleaned_data

Проверяйте входные данные и читайте очищенные значения

«is_valid и cleaned_data» — бесплатный урок Django Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Bind Data First

To validate, create a bound form by passing the submitted data into it. Only bound forms can be validated.

form = ContactForm(request.POST)

Call is_valid()

is_valid() runs every field validation and returns True only if all of them pass. It triggers the whole cleaning process.

if form.is_valid():
    handle(form)

cleaned_data Appears

After is_valid() returns True, Django fills cleaned_data, a dict of validated, type-converted values ready to use.

name = form.cleaned_data["name"]

Values Are Converted

Cleaning converts types too. An IntegerField gives you a real int, and a DateField gives you a Python date, not raw strings.

age = form.cleaned_data["age"]  # int

Errors Collect Automatically

If validation fails, the messages land in form.errors, keyed by field name so you can show each problem clearly.

if not form.is_valid():
    print(form.errors)

Field-Level clean Methods

Add a method named clean_field to validate one field and return its cleaned value. Raise ValidationError to reject it.

def clean_name(self):
    name = self.cleaned_data["name"]
    return name.strip()

Raise ValidationError

Inside a clean method, raise ValidationError with a message to reject the value and attach an error to that field.

if "@" not in email:
    raise forms.ValidationError("Bad email")

Form-Wide clean()

Override clean() to validate fields against each other, like confirming two passwords match across the whole form.

def clean(self):
    cleaned = super().clean()
    return cleaned

Cross-Field Checks

In clean() you can read several cleaned_data keys and raise an error when their combination is invalid.

if start > end:
    raise forms.ValidationError("Bad range")

The Cleaning Order

Django runs field cleaning first, then your form-wide clean(). So clean() can safely rely on already-validated field values.

Use cleaned_data Safely

Always read input from cleaned_data, never from request.POST. Only cleaned_data holds validated, converted, trusted values.

email = form.cleaned_data["email"]

Quick Check

Test your grip on validation.

Recap

Bind data, call is_valid(), then read trusted values from cleaned_data. Use clean methods to add your own rules. ✅

Часто задаваемые вопросы

Урок «is_valid и cleaned_data» бесплатный?

Да — полный текст урока «is_valid и cleaned_data» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.

Чему я научусь в уроке «is_valid и cleaned_data»?

Проверяйте входные данные и читайте очищенные значения Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Django Academy?

Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «is_valid и cleaned_data»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Django Academy?

Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Определение forms.Form
  2. is_valid и cleaned_data
  3. Отображение форм в шаблонах
  4. Защита CSRF и поток POST
← Назад к Django Academy