Menu
CoddyTech

내장 유효성 검사

Coddy Django 여정의 폼 섹션에 포함된 레슨. 20개 중 9번째.

이벤트에는 설명과 장소 수가 필요합니다. 각 양식 필드는 고유한 종류의 값을 확인하고, 인수는 규칙을 추가합니다. 두 가지를 이미 배웠습니다. 모든 필드는 필수이며, max_length=100은 제목이 더 길면 거부합니다.

  • forms.IntegerField(min_value=1, max_value=5): 한도 사이의 정수입니다.
  • forms.EmailField(): 이메일 주소가 아닌 텍스트는 거부합니다.
  • 어떤 필드에든 required=False를 지정하면 비워 둘 수 있습니다.

위젯은 필드를 어떻게 표시할지 결정합니다. widget=forms.Textarea는 큰 텍스트 입력란을 만듭니다. 다음은 제품 리뷰 양식입니다.

class ReviewForm(forms.Form):
    stars = forms.IntegerField(min_value=1, max_value=5)
    comment = forms.CharField(widget=forms.Textarea, max_length=500)
    nickname = forms.CharField(required=False)

비어 있는 선택적 텍스트 필드는 cleaned_data에 ""를 제공합니다. 비어 있는 선택적 숫자 필드는 None을 제공합니다. 템플릿의 반복문은 변경 없이 새 필드를 표시합니다.

challenge icon

챌린지

쉬움

EventForm에 필드 두 개를 추가하세요:

  • description: 큰 입력 상자에 입력하는 텍스트이며, 비워 둘 수 있습니다.
  • capacity: 1 이상의 정수입니다.

new_event에서 두 필드 모두 이벤트에 저장하세요. Run을 누르고 /events/new/를 여세요.

직접 해보기

from django import forms


class EventForm(forms.Form):
    title = forms.CharField(max_length=100)
    date = forms.DateField()
    place = forms.CharField(max_length=100)
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

폼의 모든 레슨

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