Menu
CoddyTech

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"]
challenge icon

챌린지

쉬움

Django 폼으로 새 이벤트를 확인하세요.

  1. events/forms.py에서 EventForm을 작성하세요. title과 place는 최대 100자의 텍스트로, date는 날짜로 설정하세요.
  2. new_event에서 request.POST로 폼을 만드세요. 유효하면 form.cleaned_data로 이벤트를 만들고 해당 이벤트로 리디렉션하세요. 유효하지 않으면 error를 Please check the form.으로 설정하세요.

날짜 없이 폼을 제출하면 양식 확인 안내가 표시됩니다.

직접 해보기

from django import forms

폼의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드