对于别的类型的表单数据我使用的是cleaned_data['列名']取得传入值,对于ChoiceField和MultipleChoiceField的传入值取值应当怎么取?如果用cleaned_data['列名']方式取值分别会得到什么样的数据结构?
cleaned_data['列名']
ChoiceField
MultipleChoiceField
认证高级PHP讲师
코드를 사용하여 테스트할 수 있습니다: 모델:
테스트로 테이블에 세 개의 데이터 행을 삽입합니다.
양식:
위 양식에서는 ModelChoiceField와 ModelMutipleChoiceField를 생성했습니다. queryset에서는 id가 2 이하인 개체를 쿼리합니다.
보기:
템플릿:
다음과 같이 양식을 작성해 드립니다.
출력 결과는 다음과 같습니다.
다음에서 알 수 있습니다. ModelChoiceField는 clean_data를 통해 해당 쿼리셋에 해당하는 모델의 인스턴스에 값을 반환합니다. ModelMultipleChoiceField는 clean_data를 통해 해당 쿼리셋에 해당하는 모델의 인스턴스 목록을 반환합니다. 다른 양식은 clean_data 반환 값을 사용하여 해당 필드의 유형을 정의합니다. Django의 문서는 매우 명확하므로 주의 깊게 읽어볼 수 있습니다.
코드를 사용하여 테스트할 수 있습니다:
으아악모델:
테스트로 테이블에 세 개의 데이터 행을 삽입합니다.
으아악양식:
으아악위 양식에서는 ModelChoiceField와 ModelMutipleChoiceField를 생성했습니다. queryset에서는 id가 2 이하인 개체를 쿼리합니다.
보기:
으아악템플릿:
으아악다음과 같이 양식을 작성해 드립니다.
출력 결과는 다음과 같습니다.
으아악다음에서 알 수 있습니다.
ModelChoiceField는 clean_data를 통해 해당 쿼리셋에 해당하는 모델의 인스턴스에 값을 반환합니다.
ModelMultipleChoiceField는 clean_data를 통해 해당 쿼리셋에 해당하는 모델의 인스턴스 목록을 반환합니다.
다른 양식은 clean_data 반환 값을 사용하여 해당 필드의 유형을 정의합니다.
Django의 문서는 매우 명확하므로 주의 깊게 읽어볼 수 있습니다.