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>