Django形式 - 飞行中的RadioSelect

时间:2012-01-12 23:52:10

标签: python django forms

我的django和表格有问题。

在forms.py中,我有这样的话:

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())

当我在模板中使用它时,我有这样的感觉:

Answers:

- a
- s
- d

你知道为什么我没有得到所有的话,但只有一个字母的字母?

1 个答案:

答案 0 :(得分:2)

choices应该是两元组的列表(或其他可迭代的)。每个元组中的第一个条目是存储在数据库中的值。第二个是人类可读的名字。 有关详细信息,请参阅choices上的文档。

因此,您的choices列表应该更像这样:

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

发布后,您的代码正在考虑每个字符串(aaaa,ssssssss等)为类似元组并且为数据库表示抓取每个字符串的第一个字母,并且 second用于人类可读名称(用于标签)的每个字母