我使用 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"}),
}
关于python - 无法在 django 中将单选按钮设置为必需,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41559454/