РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
403 of 818 menu

Атрибут initial

Атрибут initial применяется к классу Form и позволяет задать начальные значения для полей формы. Эти значения будут отображаться в полях ввода при первой загрузке страницы, до того как пользователь отправит данные. Атрибут представляет собой словарь, где ключами являются имена полей, а значениями - начальные данные. Это удобно для предзаполнения формы значениями по умолчанию или данными из базы данных.

Синтаксис

class MyForm(forms.Form): field_name = forms.FieldType() class Meta: initial = { 'field_name': 'value', }

Атрибут initial можно также передавать непосредственно в конструктор формы при создании экземпляра:

form = MyForm(initial={'field_name': 'value'})

Пример

Давайте создадим форму для регистрации пользователя с начальными значениями:

from django import forms class RegistrationForm(forms.Form): username = forms.CharField(max_length=100) email = forms.EmailField() age = forms.IntegerField() class Meta: initial = { 'username': 'guest', 'email': 'guest@example.com', 'age': 18, }

Создадим экземпляр формы и выведем начальные значения:

form = RegistrationForm() print(form.initial)

Результат выполнения кода:

{'username': 'guest', 'email': 'guest@example.com', 'age': 18}

Пример

Давайте передадим начальные значения в конструктор формы для конкретного пользователя:

from django import forms class ProfileForm(forms.Form): first_name = forms.CharField(max_length=50) last_name = forms.CharField(max_length=50) birth_date = forms.DateField() user_data = { 'first_name': 'John', 'last_name': 'Doe', 'birth_date': '1990-05-15', } form = ProfileForm(initial=user_data) print(form.initial)

Результат выполнения кода:

{'first_name': 'John', 'last_name': 'Doe', 'birth_date': '1990-05-15'}

Пример

Атрибут initial также можно использовать вместе с ModelForm для предзаполнения значениями из существующей записи базы данных:

from django import forms from myapp.models import User class UserForm(forms.ModelForm): class Meta: model = User fields = ['username', 'email', 'age'] user = User.objects.get(id=1) form = UserForm(initial={ 'username': user.username, 'email': user.email, 'age': user.age, }) print(form.initial)

Результат выполнения кода:

{'username': 'john_doe', 'email': 'john@example.com', 'age': 30}

Пример

Давайте создадим форму с динамическими начальными значениями на основе текущей даты:

from django import forms from datetime import date class OrderForm(forms.Form): product = forms.CharField(max_length=100) quantity = forms.IntegerField() order_date = forms.DateField() today = date.today() form = OrderForm(initial={ 'product': 'Laptop', 'quantity': 1, 'order_date': today, }) print(form.initial['product']) print(form.initial['order_date'])

Результат выполнения кода:

"Laptop" "2026-09-07"

Смотрите также

  • метод is_valid,
    который валидирует данные формы
  • атрибут cleaned_data,
    который содержит очищенные и проверенные данные формы
  • атрибут instance,
    который связывает форму с объектом модели
  • метод save,
    который сохраняет данные формы в базу данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить