2011-03-20 71 views
0

我想通过使用Django中提供的RadioSelect()小部件呈现一个(默认)单选按钮,但每当我使用它时,输出都是空白的。但是,如果我让django窗体加载默认渲染器,而不是使用选项打印出下拉框。我在这里粘贴我为此编写的代码摘要。Django中的RadioSelect()小部件的模板呈现问题

# In models.py 

AUDIO_SETTING_CHOICES = (
         ('RESTART', 'Play audio from the beginning.'), 
         ('CONTINUE', 'Continue playing previous audio (if same).'), 
    ) 

audio_setting = models.CharField(max_length=20, choices=AUDIO_SETTING_CHOICES, default='RESTART') 

# In forms.py 

class ChapterItemForm(forms.ModelForm): 
    def __init__(self, user=None, *args, **kwargs): 
     self.user = user 
     super(ChapterItemForm, self).__init__(*args, **kwargs) 

     self.fields['audio_setting'] = forms.ChoiceField(label="How to play the audio?", 
                 widget=forms.RadioSelect()) 

# In template 
<Form> 
... 
audio setting: {{ form.audio_setting }} <br /> 
... 

所以对我可能是做错了任何指针?

回答

2

http://docs.djangoproject.com/en/dev/ref/forms/fields/#choicefield

你不传递任何选择的ChoiceField

self.fields['audio_setting'] = forms.ChoiceField(choices=AUDIO_SETTING_CHOICES, label="How to play the audio?", widget=forms.RadioSelect()) 
+0

感谢。第一个选项有效,但不是第二个选项。 – Chantz 2011-03-20 10:50:18

+0

@Chantz对不起,你的权利,这是一个CharField。去第一个选项 – DTing 2011-03-20 10:53:17

+0

有没有其他的方式来模拟无线电领域? – Chantz 2011-03-20 10:56:41