Django 폼 하나
Coddy Django 여정의 폼 섹션에 포함된 레슨. 20개 중 5번째.
날짜 없이 양식을 보내면 사이트가 충돌합니다. Django는 빈 텍스트를 날짜로 변환할 수 없습니다. 각 필드를 일일이 확인하려면 모든 필드와 모든 오류에 대한 코드를 작성해야 합니다.
Django 양식은 forms.py에 필드를 한 번 정의하며, 각 필드는 허용되는 값을 알고 있습니다. 식당 예약 양식은 다음과 같습니다.
from django import forms
class BookingForm(forms.Form):
name = forms.CharField(max_length=50)
day = forms.DateField()
guests = forms.IntegerField()달리 지정하지 않으면 모든 필드는 필수이며, CharField는 먼저 공백을 제거하므로 공백만 있는 이름은 빈 값으로 간주됩니다.
뷰에서 전달된 데이터로 양식을 만들고 is_valid()를 호출합니다. 이 메서드는 모든 필드를 확인하고 True 또는 False를 반환합니다. 그러면 form.cleaned_data에 Python 형식으로 변환된 값이 들어 있으므로 cleaned_data["day"]는 텍스트가 아니라 datetime.date입니다.
form = BookingForm(request.POST)
if form.is_valid():
day = form.cleaned_data["day"]챌린지
쉬움events/forms.py에서EventForm을 작성하세요.title과place는 최대 100자의 텍스트로,date는 날짜로 지정하세요.new_event에서 POST 요청을 사용해 이를 확인하세요. 유효하면 변환된 값으로 이벤트를 만들고 리디렉션하세요. 유효하지 않으면error를Please check the form.으로 설정하여 페이지를 렌더링하세요.
실행을 누르고 날짜를 입력하지 않은 채 양식을 제출하세요.
직접 해보기
from django import forms
폼의 모든 레슨
직접 연습해 보세요: Django 플레이그라운드