【问题标题】:django model choice field does not render as radio buttondjango 模型选择字段不呈现为单选按钮
【发布时间】:2014-11-03 18:26:28
【问题描述】:

我正在尝试显示一个单选组,而不是默认下拉列表。我的表单如下所示:

class ConditionForm(forms.ModelForm):

    state = forms.ChoiceField(choices=STATE_TYPES, widget=forms.RadioSelect())

    class Meta:
        model = Customer
        fields = ('state',)

我也试过这个: 类ConditionForm(forms.ModelForm):

    class Meta:
        model = Customer
        fields = ('state',)
        widgets = {
        'state': forms.RadioSelect(),
    }

我的模型如下所示:

STATE_TYPES = (
    (0, 'Type 2'),
    (1, 'Type 1'),
)
class Customer(models.Model):
    state = models.IntegerField(choices=STATE_TYPES, default=0, null=True)
    created_at = models.DateTimeField(auto_now_add = True)
    updated_at = models.DateTimeField(auto_now = True)

我的模板看起来像:

{{ form.state }}

这会输出一个下拉菜单,而不是 4 个单选按钮。

我做错了什么?

【问题讨论】:

    标签: django django-models django-forms


    【解决方案1】:

    我认为我的 css 和使用 django 小部件调整存在问题。我从 django 小部件调整中删除了添加 css 并将其添加到表单中并且它起作用了。

    像这样:

    state = forms.ChoiceField(choices=STATE_TYPES, widget=forms.RadioSelect(attrs={'class':'radio_1', 'name': 'name2'}))
    

    【讨论】:

      【解决方案2】:

      您应该只输出字段,而不是遍历其属性。只是:

      {{ form.state }}
      

      【讨论】:

      • 我需要对每个单选按钮应用 css 是我迭代的原因。即使我这样做 {{ form.state }} 下拉菜单显示而不是广播组。你知道为什么会发生这种情况吗?
      猜你喜欢
      • 2017-01-26
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2016-04-13
      相关资源
      最近更新 更多