Html form
몇가지 fact
- 하나의 form 태그는 하나 이상의 위젯을 가진다.
- Middleware는 view함수의 함,뒤에서 실행됨.(csrf_token이 한 예) -request.method 는 “GET,POST” (대문자)로 사용
- request.GET, request.POST, request.FILES
- Validator는 모델에 하면 좋음(admin에도 포함됨)
- form.is_valid()가 참이되면 값들을 사전타입으로 form.cleaned_data에 저장됨.
라 하면 post전송에 get인자를 지정해서 보내는 것임.
- form.is_valid()를 하면 유효성 검사와 함께 clean data 생성함.
- (모델폼을 사용했을 경우) comment=form.save(commit=False)를 하면 clean data가 인스턴스에 저장되어 새로운 인스턴스(comment)를 생성. 위에서 commit=False을 생략하면, DB에 저장되는 절차가 부여됨.
- request.POST[‘message’]보다는 form.cleaned_data[‘message’]와 같이 사용할 것
- 모델폼에서 수정은 instance=post를 넣어주어야 함.
- models는 DB에 대한 fields 설명
- form은 python에 대한 fields(파이썬은 길이에 따른 구분이 없으므로 같이 쓰면 된다. )
- form의 유효성 검사가 통과하였을 때 저장방법
- 3,4번째 방식은 따로 save()를 호출하지 않아도 됨.
-
검증에 실패하면 form.errors와 form.각필드.errors에 정보저장
-
내장 Validators
- 화면 한쪽으로 쏠릴때
만 해도 어느정도 레이아웃이 이뻐진다.
- nonfield error (특정영역에 속하지 않는 전체적인 오류)
- 템플릿에서 쓰는 form 마크업 참고
- for error in form.non_field_errors
- form.title.label_tag 등
AskDjango EP18~EP24 form 관련
Leave a Comment