Form 사용
Form에 대한 공식 문서
https://docs.djangoproject.com/en/4.0/ref/forms/
Forms | Django documentation | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com
Form 사용 준비
- (/App/forms.py) 파일 추가

- form의 기능들
(Model에 있는것과 유사)

Form 사용해보기
Test를 위한 준비
- (/App/forms.py) code 추가

- (/App/views.py)(/App/urls.py) Test용 form view 준비


- 실행 후 결과 (연결 잘 되어있음)

- (/templates/-/post_form2.html)(/App/views.py) Test용 templates만들기, 만든 templates 연결


- 실행 후 결과

form으로 표시하기
- (/templates/-/post_form2.html) form.as_p 사용

- 실행 후 결과

위젯
참고
- 공식문서 참고

- '기본 위젯'
- 위젯 = HTML의 Input type 이라고 생각하면 이해가 쉬움
- 더 동적으로 HTML Form Tag를 사용할 수 있다.
위젯 변경 Test
- (/App/forms.py) widget 추가

- 실행 후 결과

Choice 사용
- 이전 Mission에서 사용했던 Choice를 바로 사용할 수 있다
2022.04.23 - [공부/[SW][Backend][Pre-Origin] Main Pag] - [The Origin][2차][Mission][성찰] FAQ 만들기
- (/App/forms.py) Choice 추가


- 실행 후 결과

이름 지정
- (/App/forms.py) 각 필드에 이름 추가

- 실행 후 결과

Form을 통한 render
https://docs.djangoproject.com/en/4.0/ref/forms/api/#django.forms.Form.get_context

https://docs.djangoproject.com/en/4.0/topics/forms/#working-with-form-templates

Form.as_p()
- 공식 문서 참고

- 실행 후 검사로 Data 확인 ( <p> 태그 확인 )


Form.as_ul()
- 공식 문서 참고

- 실행 후 검사로 Data 확인 ( <li> 태그 확인 )


Form.as_table()
- 공식 문서 참고

- 실행 후 검사로 Data 확인 (Table이라고 확 보이지는 않음)


반복을 통한 form 출력
간단한 방식
- (/templates/-/post_form2.html) 반복문 추가

- 실행 후 결과

Form에서의 Post
(/App/views.py)

PostBaseForm(request.POST)
- POST만 실행시 Image를 불러 올 수 없음
- FILES로 저장을 따로하기 때문에 추가가 필요
- form = PostBaseForm(request.POST, request.FILES)

- 유효성 검사를 위해서 cleaned_data 사용
- 그냥 값을 변환하기 위해서는 changed_data도 있음 (유효성 검사 없음

- https://docs.djangoproject.com/en/4.0/ref/forms/api/#django.forms.Form.is_valid

- cleaned_data와 같이 유효성 검사를 위한 함수
- 조건으로 넣어서 해당 내용이 유효성에 맞는지 안맞는다면 다른 결과를 도출하게 바꿀 수 있음
Tip
Debug 방법 (EX_ POST 확인해볼 때)
- (/App/views.py) 코드 디버깅 시 변수의 Data들 확인 가능


- 조사식에서 간단하게 수정해서 Data가 가능한지 불가능한지 알 수 있음

'학습 > [The-Origin][SW][Backend] Main Pag' 카테고리의 다른 글
[The Origin][VSCODE][Django] 사용자(User) 내용 커스텀 하기 (0) | 2022.05.16 |
---|---|
[The Origin][VSCODE][Django][Form] 조금 활용 (0) | 2022.05.16 |
[The Origin][백엔드] 6주차 (0) | 2022.05.16 |
[The Origin][2차][Mission][성찰] FAQ 만들기 (0) | 2022.04.23 |
[The Origin][VSCODE][Django][CRUD] Delete (0) | 2022.04.22 |