Атрибут fields
Атрибут fields используется для указания порядка полей при рендеринге формы. По умолчанию поля отображаются в том порядке, в котором они объявлены в классе формы. Однако с помощью атрибута fields можно явно задать последовательность полей, а также включить или исключить определенные поля из отображения.
Синтаксис
class MyForm(forms.Form):
field1 = forms.CharField()
field2 = forms.CharField()
field3 = forms.CharField()
fields = ['field2', 'field1', 'field3']
Пример
Создадим форму регистрации с тремя полями и зададим порядок их отображения с помощью атрибута fields:
from django import forms
class RegistrationForm(forms.Form):
password = forms.CharField(widget=forms.PasswordInput)
email = forms.EmailField()
username = forms.CharField(max_length=100)
fields = ['username', 'email', 'password']
Результат отображения полей в указанном порядке:
"Порядок полей: username, email, password"
Пример
Используем атрибут fields для исключения поля из отображения. Для этого просто не включаем его в список:
from django import forms
class UserProfileForm(forms.Form):
first_name = forms.CharField(max_length=50)
last_name = forms.CharField(max_length=50)
email = forms.EmailField()
password = forms.CharField(widget=forms.PasswordInput)
confirm_password = forms.CharField(widget=forms.PasswordInput)
fields = ['first_name', 'last_name', 'email']
В результате поля password и confirm_password не будут отображаться при рендеринге формы:
"Отображаются поля: first_name, last_name, email"
Пример
Используем fields для сортировки полей в алфавитном порядке независимо от объявления:
from django import forms
class ContactForm(forms.Form):
message = forms.CharField(widget=forms.Textarea)
subject = forms.CharField(max_length=200)
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
fields = ['cc_myself', 'message', 'sender', 'subject']
Поля будут отображаться в следующем порядке:
"Порядок полей: cc_myself, message, sender, subject"
Смотрите также
-
класс
Form,
базовый класс для создания форм -
метод
is_valid,
выполняет валидацию данных формы -
атрибут
cleaned_data,
содержит проверенные и очищенные данные формы -
атрибут
errors,
содержит ошибки валидации формы