TextField missing in django.forms
If you want a textarea you can use the forms.CharField with the forms.TextArea widget.
class ContactForm(forms.Form):
message = forms.CharField(widget=forms.Textarea)
CharField
might be what you are looking for.
EDIT: To clarify, the docs mention TextField
as a model field type. You cannot use it as form field. The table that the OP pointed out indicates that a TextField
in a model is represented as a CharField
(with widget=forms.Textarea
) in a corresponding ModelForm. I would imagine, then, that there is no form field with Textarea
as its default widget.
If I were to guess why Django made this choice, I would say that having two fields that differ only in the widget they use, not in the type of data being stored, validation, etc. might be considered useless by the people at Django and hence you have to manually change the widget.
Just want to add a better example for beginners like me, as all mentioned above, there is no TextFile for ModelForm, and if you need to use it, for the OP's case, should be:
first_name = forms.CharField(
widget=forms.TextInput(attrs={'placeholder': 'first name'}),
label=_(u'First name'),
required=False)
And if you do need a textarea field for description or comment, then you can use Textarea widget:
description = forms.CharField(
widget=forms.Textarea(attrs={'placeholder': 'Please enter the description'}))