2012-01-12 2 views
2

장고와 양식에 문제가 있습니다. forms.py에서Django forms - RadioSelect on fly

이 같은 STH 있습니다

class MyForm(forms.Form): 

def __init__(self, *args, **kwargs): 
    self.answers = kwargs.pop('answers') 
    super(AnswersForm, self).__init__(*args, **kwargs) 

    choices = ["aaaa", "ssssssssss", "ddddddddd"] 
    self.fields['answers'] = forms.ChoiceField(choices = choices, widget=forms.RadioSelect()) 

을 그리고 난이 템플릿을 사용하는 경우,이 같은 STH 있습니다

Answers: 

- a 
- s 
- d 

내가하지 않은 이유를 알고 계십니까을 모든 단어가 있지만 그 단어의 문자는 단 한 개입니까?

답변

2

choices은 2 튜플의 목록 (또는 기타 반복 가능)이어야합니다. 각 튜플의 첫 번째 항목은 데이터베이스에 저장되는 값입니다. 두 번째는 사람이 읽을 수있는 이름입니다. 자세한 내용은 choices에 대한 설명서를 참조하십시오.

따라서, 귀하의 choices 목록보기 다음과 같아야합니다

choices = [("a","aaaa"), ("s", "ssssssssss"), ("d", "ddddddddd")] 

, 코드가 각각의 문자열을 고려 튜플 같은 될 (AAAA, ssssssss 등)과 첫 글자를 잡는 억원으로 데이터베이스 표현에 대해 각각, 두 번째 문자 (사람이 읽을 수있는 이름 (레이블에 사용됨))이 각각 입니다.