작성
·
231
답변 1
2
CharField의 경우 폼에 들어갈 필드의 데이터 형을 정의할 때 사용하는 클래스입니다. 마치 폼의 자료형 같은 거라고 보시면 되는데, 쟝고에서는 폼을 바로 html로 렌더링하는 기능을 내장하고 있기 때문에 렌더링할 때 어떤 형태로 입력 칸을 그려줄지를 정하는 것이 Widget인데요. Form field 와 다르게 이 위젯은 화면 그리기에 관여하는 클래스들이며 그런 위젯 중 하나가 Textarea 입니다. 따라서 forms.CharField와 forms.Textarea는 개념 자체가 다릅니다.
CharField로 문자열 데이터 형을 정의하고 이걸 입력 받을 때 어떤 html 형태로 받을지를 정의하는게 Textarea가 되는 것인데 위 코드처럼 Textarea로 정의하지 않으면 기본적으로 charfield는 Textinput이라는 <input type=text> 형태의 위젯이 표시됩니다.