본문 바로가기

웹/Django

폼 처리하기

장고는 form의 데이터를 전송할 때 오로지 post방식만 사용한다.

모델 클래스 -- 데이터베이스 매칭처럼

폼 클래스 -- input엘리먼트에 매핑됨

데이터가 있는 폼을 bound form

데이터가 없는 폼을 unbound form 이라고 함

 

폼 클래스를 따로 정의해서 view에서 처리한다.

각 input type 별로 필드 타입이 다르다.

예시

text타입은 CharField(label="",max_length=)

textarea 타입은 CharField(label="",max_length=100, widget=forms.Textarea)

 

장고의 모든 폼 클래스는 is_valid()를 통해 유효성 검사를 한다.

유효하면 true를 리턴, cleaned_data 속성에 넣는다.

 

폼 클래스의 렌더링

{{form}} 구문은 label 과 input 엘리먼트 쌍으로 렌더링 된다.

추가적인 옵션

{{form.as_table}} #테이블 렌더링

{{form.as_p}} #p태그 감싸서 렌더링

{{form.as_ul}} #ul로 렌더링

클래스를 만들어서 구현 할때

django.forms 를 import하고

forms.매핑된 엘리먼트

이때

클래스 변수 이름은 렌더링 시 input 태그의 name속성의 값이 된다.
id id_클래스변수명 이다.

예시

message = forms.CharField(max_lenth=100)

checkBox= forms.BooleanField(required=False)

 

 

' > Django' 카테고리의 다른 글

제네릭 뷰  (0) 2020.12.11
클래스형 뷰  (0) 2020.12.11
템플릿 활용법3 - 템플릿 상속  (0) 2020.12.10
템플릿 활용법2 -템플릿 태그  (0) 2020.12.09
템플릿 활용법  (0) 2020.12.09