ChoiceField는 검증 시 choices 옵션으로 전달 받은 list 객체의 원소만 유효하다고 판단한다. (docs) 한편, allow_null 옵션은 여전히 사용 가능하며, 값이 True일 경우 None도 유효하게 된다.

그렇다면, ChoiceField(choices=[1, 2, None], allow_null=True)None 값을 입력하면 유효성 검사를 통과할까? 정답은 No다.

<aside> 📌 choices 옵션 값의 list에 포함된 None은 선택 가능 값 유효성 검사에서 무의미하다. 오직 allow_null=True 설정만이 None 허용을 결정한다.

</aside>

Untitled