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

Виджет Textarea

Виджет Textarea применяется для отображения текстового поля, предназначенного для ввода большого объема текста. В HTML он превращается в тег <textarea>. Данный виджет особенно полезен для полей, где требуется ввод описаний, комментариев или другого многострочного содержимого. При создании виджета можно указать такие атрибуты, как cols и rows для задания размеров текстовой области, а также передать произвольные HTML-атрибуты через параметр attrs.

Синтаксис

from django import forms class MyForm(forms.Form): field_name = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols': 40}))

Пример

Создадим простую форму с полем для ввода описания статьи, используя виджет Textarea:

from django import forms class ArticleForm(forms.Form): title = forms.CharField(max_length=100) description = forms.CharField( widget=forms.Textarea(attrs={'rows': 5, 'cols': 50}), label='Описание статьи' )

Пример

Используем виджет Textarea в форме, основанной на модели, для поля, которое хранит большой текст:

from django import forms from myapp.models import Article class ArticleModelForm(forms.ModelForm): class Meta: model = Article fields = ['title', 'content', 'status'] widgets = { 'content': forms.Textarea(attrs={ 'rows': 15, 'cols': 80, 'placeholder': 'Введите текст статьи здесь...' }), }

Пример

Зададим виджету Textarea дополнительные CSS-классы для стилизации через атрибут attrs:

from django import forms class CommentForm(forms.Form): author = forms.CharField(max_length=50) comment = forms.CharField( widget=forms.Textarea(attrs={ 'class': 'form-control comment-area', 'rows': 4, 'cols': 60, 'id': 'comment-field' }), label='Ваш комментарий' )

Пример

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

from django import forms class EditArticleForm(forms.Form): content = forms.CharField( widget=forms.Textarea(attrs={'rows': 10, 'cols': 70}), initial='Это текст статьи по умолчанию.' )

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

  • виджет TextInput,
    который создает однострочное текстовое поле
  • виджет PasswordInput,
    который предназначен для ввода паролей
  • виджет EmailInput,
    который используется для ввода email-адресов
  • поле CharField,
    которое по умолчанию использует виджет TextInput
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить