forms.py
views.py
index.html
Список типов полей:
За генерацию отвечает forms.widgets. Список дополнительных виджетов:
PasswordInput - генерирует поле для ввода пароля
HiddenInput - генерирует скрытое поле
MultipleHiddenInput - генерирует набор скрытых полей
TextArea - генерирует многострочное текстовое поле
RadioSelect - генерирует список переключателей (радиокнопок)
CheckboxSelectMultiple - генерирует список флажков
TimeInput-генерирует поле для ввода времени (например, 12:41 или 12:41:32)
SelectDateWidge - генерирует три поля select для выбора дня, месяца и года
SplitHiddenDateTimeWidget - использует скрытое поле для хранения даты и времени
FileInput- генерирует поле для выбора файла
Каждый экземпляр класса Field имеет метод clean(), который принимает единственный аргумент и вызывает исключение django.forms.ValidationError в случае ошибки или возвращает чистое значение: Field.clean(value)
Дополнительные аргументы:
- required - указывает на необходимость обязательного заполнения поля (по умолчанию: required=True). Для того чтобы сделать поле необязательным для заполнения, нужно указать: required=False;
- label - позволяет определить видимую пользователем метку для поля (например, если имя поля name и на экране нужно показать Ваше имя, то это можно сделать следующим образом: name = forms.CharField(label='ваше имя' ) ;
- label_suffix - позволяет переопределить атрибут формы label_suffix для каждого поля. Например:
- initial - позволяет определять начальное значение для поля при его отображении на незаполненной форме. Например:
- widget - позволяет указать класс Widget, который следует использовать при отображении поля вместо того, который задан по умолчанию
- help_text - позволяет указать описание данных, которые нужно внести в поле. Если вы укажете help_text, он будет показан около поля при отображении формы с помощью вспомогательных методов. Например:
- error_messages - позволяет изменить стандартные сообщения об ошибках, которые выдает поле.
- validators - позволяет указать список функций, осуществляющих проверку поля
- localize - включает локализацию для данных формы как на входе, так и на выходе
- disabled - этот аргумент принимает булево значение. При значении true - выключает поля формы, используя HTML-атрибут disabled. Даже если пользователь отправит данные этого поля, они будут проигнорированы и использовано значение из начальных данных, которые были переданы в форму.
- empty_value - значение по умолчанию в поле textInput. Заранее ведённый текст.
- max_length и min_length - максимально и минимальное символов для CharField
- max_value и min_value - максимальное и минимальное значение для forms.IntegerField()
- field_order = ["age", "name"] - переопределение порядка вывода формы
- attrs={"class": "myfield"} - присвоение конкретных атрибутов полю
Вид формы:
as_table( ) - отображение полей в виде таблицы;
as_ul( ) - отображение полей в виде списка;
as_p( ) - отображение каждого поля формы в отдельном параграфе (абзацев).
Детальная настройка полей формы:
- form.название_поля.name - возвращает название поля
- form.название_поля.value - возвращает значение поля, которое ему было передано по умолчанию
- form.название_поля.label - возвращает текст метки, которая генерируется рядом с полем
- form.название_поля.id_for_label - возвращает id для поля, которое по умолчанию создается по схеме id _имя_ поля;
- form.название_поля.auto_id - возвращает id для поля, которое по умолчанию создается по схеме id _имя_ поля;
- form.название_поля.label_tag- возвращает элемент label, который представляет метку рядом с полем;
- form.название_поля.help_text - возвращает текст подсказки, ассоциированной с полем;
- form.название_поля.errors - возвращает ошибки валидации, связанные с полем;
- form.название_ поля.css_classes - возвращает CSS-классы поля;
- form.название_поля.as_hidden - генерирует для поля разметку в виде скрытого поля;
- form.название_поля.is_hidden - возвращает True или False в зависимости от того, является ли поле скрытым;
- form.название_поля.аs_text - генерирует для поля разметку в виде текстового поля;
- form.название_поля.аs_textarea - генерирует для поля разметку в виде textarea;
- form.название_поля.as_widget - возвращает виджет Django, который ассоциирован с полем