2013-06-26 4 views
0

아래의 choicefield에 대한 기존 valuelistqueryset에 빈 선택 값을 추가해야합니다. Django similat 내 양식은 modelchoicefield("-------------")입니다. 아무도 이것으로 나를 도울 수 있습니까?django choicefield에 대한 기존 valuelistqueryset에 빈 선택을 추가해야합니다.

hardness = forms.ModelChoiceField(queryset=Description.objects.filter(variable="hardness", paradigm='206209').values_list('dvalue', flat=True).distinct().order_by('dvalue')) 

@jghyllebert 답장을 보내 주셔서 감사합니다. 하지만이 경우에는 modelchoicefield를 choicefield로 변환해야합니다. 그리고 choicefield에 대한 해결책이 필요합니다. 미안해. 미안. 선택 필드에서 empty_label 및 empty_value를 시도했지만 양식이 잘못되었습니다.

rimplan = forms.ChoiceField (필수 = 거짓, 빈 값 = '---', 선택 사항 = 설명. 개체. 필터 (변수 = "rimplan", paradigm = '206209'). values_list ('dvalue', flat = True) .distinct(). order_by ('dvalue'))

따라서 완벽하게 작동하는이 솔루션을 구현했습니다.

EXTSURCOLOR_DESCRIPTIONS = Description.objects.filter (변수 = "exteriorsurfacecolor"패러다임 = '206209') EXTSURCOLOR_CHOICES = ('' '---')] EXTSURCOLOR_CHOICES.extend (EXTSURCOLOR_DESCRIPTIONS.values_list ("dvalue" , "dvalue"). distinct(). order_by ('dvalue')) exteriorsurfacecolor = forms.ChoiceField (choices = EXTSURCOLOR_CHOICES)

더 나은 해결책이 있는지 알고 싶었습니다.

+0

'required = False'를 설정하면 표시 될 빈 값이 있습니까? 말 그대로 쿼리 세트에 삽입 할 수는 없지만 필드에 제공된 선택 항목에 추가합니다. –

답변

0

빈 선택 옵션에 대한 사용자 지정 값을 설정하는 데 사용할 수있는 옵션은 empty_label입니다. 워드 프로세서에 따라

hardness = forms.ModelChoiceField(
    queryset=Description.objects.filter(variable="hardness", paradigm='206209').values_list('dvalue', flat=True).distinct().order_by('dvalue'), 
    empty_label='Not applicable', #for instance 
    required=False 
) 

하십시오 ModelChoiceField이 필요하고, 기본 초기 값을 갖는 경우, 빈 선택 (에 관계없이 empty_label의 값)이 생성되지 않도록

참고.

+0

@jghyllebert 답장을 보내 주셔서 감사합니다. 하지만이 경우에는 modelchoicefield를 choicefield로 변환해야합니다. 그리고 choicefield에 대한 해결책이 필요합니다. 미안해. 미안. 선택 필드에서 empty_label 및 empty_value를 시도했지만 양식이 잘못되었습니다. values_list ('dvalue', flat = True) : rimplan = forms.ChoiceField (필수 = 거짓, 빈 값 = '---', 선택 사항 = 설명 오브젝트 필터 (변수 = "rimplan", 패러다임 = '206209' .distinct(). order_by ('dvalue')) – user1908622

+0

따라서 완벽하게 잘 작동하는이 솔루션을 구현했습니다. = Description.objects.filter EXTSURCOLOR_DESCRIPTIONS (변수 = "exteriorsurfacecolor"패러다임 = '206,209')의 EXTSURCOLOR_CHOICES = ('' '---')] EXTSURCOLOR_CHOICES.extend (EXTSURCOLOR_DESCRIPTIONS.values_list ("dvalue" exteriorsurfacecolor = forms.ChoiceField (choices = EXTSURCOLOR_CHOICES) 더 나은 해결책이 있는지 알고 싶었습니다. – user1908622

+0

이 질문에이 코드를 게시 할 수 있습니까? 지금은 읽기가 어렵습니다. –