django.forms에 TextField가 없습니다.
from django import forms
class UserForm(forms.ModelForm):
first_name = forms.TextField(label=_(u'First name'), required=False)
last_name = forms.TextField(label=_(u'Last name'))
" AttributeError : 'module'object has no attribute 'TextField' . 누락 된 TextField를 제외하고는 모든 것이 정상인 것 같습니다.
ipdb> forms
<module 'django.forms' from '/usr/local/lib/python2.7/dist-packages/django/forms/__init__.pyc'>
ipdb> forms.
forms.BaseForm forms.EmailField forms.MultiWidget forms.TypedChoiceField
forms.BaseModelForm forms.Field forms.MultipleChoiceField forms.TypedMultipleChoiceField
forms.BooleanField forms.FileField forms.MultipleHiddenInput forms.URLField
forms.CharField forms.FileInput forms.NullBooleanField forms.ValidationError
forms.CheckboxInput forms.FilePathField forms.NullBooleanSelect forms.Widget
forms.CheckboxSelectMultiple forms.FloatField forms.PasswordInput forms.fields
forms.ChoiceField forms.Form forms.RadioSelect forms.fields_for_model
forms.ClearableFileInput forms.HiddenInput forms.RegexField forms.forms
forms.ComboField forms.IPAddressField forms.Select forms.formsets
forms.DEFAULT_DATETIME_INPUT_FORMATS forms.ImageField forms.SelectMultiple forms.model_to_dict
forms.DEFAULT_DATE_INPUT_FORMATS forms.IntegerField forms.SlugField forms.models
forms.DEFAULT_TIME_INPUT_FORMATS forms.Media forms.SplitDateTimeField forms.save_instance
forms.DateField forms.MediaDefiningClass forms.SplitDateTimeWidget forms.util
forms.DateInput forms.ModelChoiceField forms.TextInput forms.widgets
forms.DateTimeField forms.ModelForm forms.Textarea
forms.DateTimeInput forms.ModelMultipleChoiceField forms.TimeField
forms.DecimalField forms.MultiValueField forms.TimeInput
어떤 생각?
CharField
당신이 찾고있는 것일 수 있습니다.
편집 : 명확히하기 위해 문서 TextField
는 모델 필드 유형으로 언급 합니다. 양식 필드로 사용할 수 없습니다. 테이블 방공호 지적한는 것을 나타낸다 TextField
모델에서는로 표현된다 CharField
(함께 widget=forms.Textarea
대응 ModelForm에서). 그러면 Textarea
기본 위젯이있는 양식 필드가 없다고 상상할 수 있습니다.
Django가 왜 이런 선택을했는지 짐작한다면, 저장되는 데이터 유형, 유효성 검사 등이 아니라 사용하는 위젯에서만 다른 두 필드를 갖는 것은 Django의 사람들에게 쓸모없는 것으로 간주 될 수 있습니다. 따라서 위젯을 수동으로 변경해야합니다.
텍스트 영역을 원하면 forms.TextArea 위젯과 함께 forms.CharField를 사용할 수 있습니다.
class ContactForm(forms.Form):
message = forms.CharField(widget=forms.Textarea)
위에서 언급했듯이 저와 같은 초보자를 위해 더 나은 예제를 추가하고 싶습니다. ModelForm에는 TextFile이 없으며 OP의 경우 사용할 필요가있는 경우 다음과 같아야합니다.
first_name = forms.CharField(
widget=forms.TextInput(attrs={'placeholder': 'first name'}),
label=_(u'First name'),
required=False)
설명이나 주석을위한 텍스트 영역 필드가 필요한 경우 Textarea 위젯을 사용할 수 있습니다.
description = forms.CharField(
widget=forms.Textarea(attrs={'placeholder': 'Please enter the description'}))
forms.TextField가 존재하지 않습니다. 참조하는 문서를 확인하세요. 모델 전용입니다.
실제 django 소스 django / forms / fields.py를 살펴보면이를 스스로 증명할 수 있습니다.
You must use CharField with widget=forms.TextArea as you say in your comments.
ReferenceURL : https://stackoverflow.com/questions/7302889/textfield-missing-in-django-forms
'IT박스' 카테고리의 다른 글
스크립트를 실행하여 ipython 시작 (0) | 2021.01.10 |
---|---|
Python 3에서 sys.stdout 인코딩을 설정하는 방법은 무엇입니까? (0) | 2021.01.10 |
Windows 7 Git Bash에서 현재 위치에서 디렉터리를 탐색하는 방법이 있습니까? (0) | 2021.01.09 |
화면 키보드를 닫으려면 어떻게합니까? (0) | 2021.01.09 |
C #의 메모리 누수 (0) | 2021.01.09 |