2014-01-28 4 views
0

기본 다중 선택을 장고의 여러 필드에서 확인란으로 변경하려고합니다. 확인란과 모든 것을 표시 할 수 있었지만 브라우저에서는 장고 셸에서 같은 명령을 입력 할 때 전체 목록을 가져 오는 동안 각 필드 값의 두 번째 문자 만 가져옵니다.두 번째 문자 만 django와 함께 나열했습니다

예 :

내가 입력 할 때 :

from myapp.models import Interest 

obj_list = Interest.objects.all() 
x = [obj.interest_mame for obj in obj_list] 
x 

내가 (처음 몇 값)는 예상 된 결과 내가 내 등록 양식을 열 그러나

[u'Architektur', u'Handwerken', u'Ausgehen', u'manymorestringshere'] 

를 얻을 수 브라우저, 각 문자열의 두 번째 문자 만 가져옵니다.

R, , 옆에 확인란이 경우 유 , 될 것이다.

내 파일은 다음과 같습니다 :

from django.forms import ModelForm 
from myapp.models import Person, Interest 

from django import forms 
from django.forms.extras.widgets import SelectDateWidget 


class PersonForm(ModelForm): 
    year_range = range(1996, 1920, -1) 
    person_birthdate = forms.DateField(widget=SelectDateWidget(years=year_range)) 
    obj_list = Interest.objects.all() 
    person_interests = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=[obj.interest_name for obj in obj_list]) 
    class Meta: 
     model = Person 

내가 그것을 모든 문자열의 앞에 U 것에 대한 어쩌면 생각하지만이 단지는 another question에서 유니 코드 문자열입니다 보여줄 것이라고 읽습니다.

만약 당신들 중 하나가 왜 이상한 디스플레이 버그를 나에게 설명 할 수 있다면 매우 행복 할 것입니다.

답변

1

튜플의 목록이 (value, display_value) 일 때 shown in the official documentation으로 선택해야합니다. 표시 값을 제출 된 값과 같게하려면 예를 들어 choices=[(obj.interest_name, obj.interest_name) for obj in obj_list]을 입력하면됩니다.

관련 문제