Django中RadioSelect()小部件的模板渲染问题

问题描述 投票:1回答:1

我试图通过使用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 /> 
...

所以我可能在做什么错的指针?

django django-forms radio-button
1个回答
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())
© www.soinside.com 2019 - 2024. All rights reserved.