일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 뭐든
- 사이드
- 쓰릴오브파이트
- 월간
- 운동
- 만화도
- 프로젝트
- Daily Challenge
- leetcode
- English
- 스탭퍼
- realclass
- 파비최
- 미드시청
- 리얼 클래스
- 영어공부
- 10분
- 개발자
- FIT XR
- 괜찮음
- Writing
- 3줄정리
- Problem Solving
- 링피트
- 읽기
- 30분
- 영어원서읽기
- 화상영어
- 매일
- 잡생각
- Today
- Total
파비의 매일매일 공부기록
Two Scoops of Django - #12장 본문
이번장은 장고의 폼 패턴에 대한 내용이다.
폼은 강력한 동시에 유연, 자주 자재로 확장 가능한 구조다.
그렇기에 장고 어드민과 클래스 기반 뷰에서 광범위하게 이용되며 대부분의 장고 API 프레임워크에서 모델 폼과 유사한 종류의 구현이 유효성 검사를 위해 쓰이고 있다. REST 프레임워크도 폼과 유사한 형태라고 튜토리얼에서 본 것 같다.
폼과 모델, 뷰를 조합하여 최소한의 노력으로 최대한의 효과를 노릴 수 있다. 근데 나는 꽤 어렵던데.. 생각보다 러닝 커브가 드라마틱한 듯?
이번장에서는 폼, 모델, 클래스 기반 뷰를 잘 이용하는 방법을 다룰 것이며 다섯 가지 폼 패턴에 대해 설명할 예정이다.
1. 패턴 1 : 간단한 모델 폼과 기본 유효성 검사기 : 가장 기본은 ModelForm인데 이는 기본 유효성 검사기를 있는 그대로 수정 없이 이용하는 것. 장고에서는 기본으로 validator를 제공하지만 그것으로는 충분하지 않을 수 있다. 그래서 다음 패턴에서는 커스텀 validator를 제작하는 방법을 알아본다.
2. 패턴 2 : 모델 폼에서 커스텀 폼 필드 유효성 검사기 이용하기 : validator.py를 만들고 models.py의 필드에 validators를 설정하면 된다.
3. 패턴 3 : 유효성 검사의 클린 상태 오버 라이딩하기 : 다중 필드에 대한 유효성 검사 및 이미 유효성 검사가 끝난 데이터베이스의 데이터가 포함된 유효성 검사가 필요한 경우 clean_<field name> 형태의 메서드를 이용한다.
- clean() 메서드는 어떤 특별한 필드에 대한 정의도 갖고 있지 않으므로 두 개 혹은 그 이상의 필드에 대해 서로 간의 유효성을 검사할 수 있다.
- clean 유효성 검사 상태는 영속 데이터(persistent data)에 대해 유효성을 검사하기 좋은 장소다. 이미 유효성 검사를 일부 마친 데이터에 대해 불필요한 데이터베이스와의 연동을 줄일 수 있다.
4. 패턴 4 : 폼 필드 해킹하기(두 개의 CBV, 두 개의 폼, 한 개의 모델) : 하나의 모델에 두 개의 뷰와 폼이 엮여 있는 경우, 장고 폼을 수정하여 특별한 작동(custom behavior)을 하는 폼을 생성한다. 예제들을 책을 참조.
5. 패턴 5 : 재사용 가능한 검색 믹스인 뷰 : 각기 다른 두 개의 모델에 연동되는 두 개의 뷰에 하나의 폼을 재사용하는 방법을 소개한다. 이것 역시 자세한 예제는 책을 참조하면 된다.
'Study > Python' 카테고리의 다른 글
Two Scoops of Django - #14장 (0) | 2021.06.15 |
---|---|
Two Scoops of Django - #13장 (0) | 2021.06.14 |
Two Scoops of Django - #11장 (0) | 2021.06.12 |
Two Scoops of Django - #10장 (0) | 2021.06.11 |
Two Scoops of Django - #9장 (0) | 2021.06.10 |