我试图通过使用django中提供的RadioSelect()小部件来渲染(默认)单选按钮,但是每当我使用它时,输出都是空白。但是,如果我让Django表单加载默认渲染器,则它会打印出一个下拉框,其中的选项就很好。我在这里粘贴为此编写的代码摘要。
# 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 />
...
所以我可能在做什么错的指针?
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())