python - 无法在 django 中将单选按钮设置为必需

标签 python html css django django-forms

我使用 django 小部件调整有以下单选按钮 html(我不必使用此库并可以使用任何可行的方法):

{% for choice in seeking_form2.disaster_recovery %}
                          <div class="radio radio-primary radio-inline">
                           {{ choice.tag|attr:"required" }}
                            <label for='{{ seeking_form2.disaster_recovery.auto_id }}_{{ forloop.counter0 }}'>{{ choice.choice_label }}</label>
                          </div>
                          {% endfor %}

这应该创建如下所示的 radio :

<input id="id_disaster_recovery" name="disaster_recovery" type="radio" value="2" required>

我的模型看起来像:

BOOL_CHOICES = ((True, 'Yes'), (False, 'No'))
disaster_recovery = models.BooleanField(choices=BOOL_CHOICES, default=False, )

我的表单如下所示:

class MyForm(forms.ModelForm):

    class Meta:
        model = MyModel
        widgets = {
            'disaster_recovery': forms.RadioSelect(), 
        }

我收到错误:

'SafeText' object has no attribute 'as_widget'

最佳答案

如果我正确理解你的问题,你应该在表单中覆盖它,而不是在模板或模型中。

class MyModelForm(..):
    disaster_recovery = forms.ChoiceField(choices=BOOL_CHOICES, widget=forms.RadioSelect(), required=True) #Default is dropdown

现在,您可以简化 HTML 来呈现单选按钮。

Some more context on this can be found here

要将 HTML 必需属性添加到现有表单中,您可以执行以下操作:

class MyForm(forms.ModelForm):

    class Meta:
        model = MyModel
        widgets = {
            'disaster_recovery': forms.RadioSelect(attrs={"required": "required"}), 
        }

这是相关的documentation on the custom attributes

关于python - 无法在 django 中将单选按钮设置为必需,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41559454/

相关文章:

html - 如果不需要,CSS隐藏滚动条

python - 如何计算python中矩阵的平衡?

python - Django中如何在没有数据库的情况下存储对象以进行通信?

python - 使用 python 生成器打印 set() 项目填充

html - 如何从图标后面创建 div 的过渡?

jquery - 想让我的图表在 D3 中看起来响应

python - 根据索引值和条件语句将行值相加

html - 使用单选按钮激活的纯 CSS 动画移动菜单

javascript - 将值传递给不同的网页表单

html - float 垂直对齐和ie 7问题