The Form Class
우리는 이미 우리가 필요한 HTML 폼이 어떻게 보여질지 알고 있습니다.
1 | <form action="/your-name/" method="post"> |
해당 폼을 Django 에서 사용하기 위한 시작점은 아래와 같습니다.
앱 안에서 사용될 Django 폼을 만드려면,
forms.py
해당 앱안에 forms.py 파일을 만들어 줍니다. 그리고 아래와 같이 작성해 줍니다.
1 | from django import forms |
이 폼 클래스는, 하나의 필드 your_name
을 가진 하나의 폼 클래스를 정의합니다.
폼 클래스의 필드에서 우리는, 사람에게 친숙한 레이블을 필드에 적용해 주었씁니다 (이 경우에는, 우리가 지정한 label 의 경우 우리가 빠트렸어도 자동으로 생성되었을 것이긴 합니다)
필드의 최대 허용 길이는 max_length 로 정의 됩니다. 이것은 두가지 일을 합니다.
- max_length=100 으로 HTML
<input>
태그에 지정하여, 브라우저가 사용자가 해당길이 이상으로 입력하는것을 방지 합니다. - 또한, Django 가 폼을 브라우저에서 다시 받을때에, 데이터의 길이에 대한 유효성을 체크 할겁니다
is_valid()
메서드
하나의 Form 인스턴스는 is_valid() 메서드를 가지고 있습니다
이 메서드는, 폼안에 있는 모든 필드의 검증 루틴을 실행합니다
이 메서드가 호출 되었을때, 모든 필드가 유효한 데이터를 가지고 있는 경우,
- True 를 리턴합니다
- 그리고, 폼의 데이터를 cleaned_data 속성에 넣어놓습니다
Django 폼 클래스 전체가 처음으로 브라우저에 렌더링 될때에는, 아래와 같이 보일겁니다.
1 | <label for="your_name">Your name: </label> |
주의할점은, <form>
태그 혹은 submit
버튼은 포함되지 않는다는것을 숙지해야 합니다. 이런것들은 우리가 스스로 템플릿에 넣어줘야 합니다.