반응형
Django, ModelChoiceField () 및 초기 값
나는 다음과 같은 것을 사용하고 있습니다.
field1 = forms.ModelChoiceField(queryset=...)
내 양식에 선택한 값이 표시되도록하려면 어떻게해야합니까?
기본 초기 값을 설정하려면 대신 id로 설정하는initial
것을 제외하고는 다른 양식 필드와 같이 정의해야합니다 .
다음 field1
과 같다고 가정 해 보겠습니다 .
class YourForm(forms.Form):
field1 = forms.ModelChoiceField(queryset = MyModel.objects.all() )
다음과 같이 양식을 만들 때 이니셜을 설정해야합니다.
form = YourForm(initial = {'field1': instance_of_mymodel.pk })
보다는 :
form = YourForm(initial = {'field1': instance_of_mymodel })
또한 __unicode__
이것이 올바르게 표시되도록 모델에 대해 정의했다고 가정 합니다.
그냥 사용할 수 있습니다
field1 = forms.ModelChoiceField(queryset=..., initial=0)
첫 번째 값을 선택하는 등의 방법이 있습니다. 더 일반적인 방법이고 다른 답변입니다.
그들이 변한 시간 :
이제 initial
다른 양식 필드처럼 정의하여 기본 초기 값을 설정할 수 있습니다.대신 ID로 설정하는 것을 제외하고.
이제 이것으로 충분합니다.
form = YourForm(initial = {'field1': instance_of_mymodel })
둘 다 여전히 작동하지만.
코드
form = YourForm(initial = {'field1': instance_of_mymodel.pk })
과
form = YourForm(initial = {'field1': instance_of_mymodel })
또는 바로 뒤에 오는 초기 필드 :
field1 = forms.ModelChoiceField(queryset=..., initial=0)
모두 작동합니다.
처음 두 가지 방법은 최종 방법보다 우선합니다.
field1 = forms.ModelChoiceField(queryset=Model.objects.all(), empty_label="Selected value")
그렇게 간단합니다 ....!
다음과 같이 할 수도 있습니다.
form = YourForm(initial = {'field1': pk })
쿼리 문자열을 통해 또는 인스턴스가 필요없는 ajax 호출을 통해 기본 키를 구문 분석하는 경우 쿼리 세트는 이미 드롭 다운에 대해 처리했으며 pk는 원하는 상태를 인덱싱합니다.
참조 URL : https://stackoverflow.com/questions/1336900/django-modelchoicefield-and-initial-value
반응형
'programing' 카테고리의 다른 글
WCF 응용 프로그램 시작 이벤트 (0) | 2021.01.18 |
---|---|
모든 사용자 및 그룹 목록 (0) | 2021.01.18 |
ASP.NET MVC 양식 인증 + 특성 권한 부여 + 단순 역할 (0) | 2021.01.18 |
JS : 문자열의 경로에서 파일 이름을 제거하는 가장 최적화 된 방법은 무엇입니까? (0) | 2021.01.18 |
모든 쿼리 문자열 이름 / 값 쌍을 컬렉션으로 가져 오는 방법이 있습니까? (0) | 2021.01.18 |