我使用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 %}它应该创建如下所示的收音机:
<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‘对象没有属性'as_widget’
发布于 2017-01-10 00:54:24
如果我正确地理解了您的问题,您应该在表单中而不是在模板或模型中覆盖这一点。
class MyModelForm(..):
disaster_recovery = forms.ChoiceField(choices=BOOL_CHOICES, widget=forms.RadioSelect(), required=True) #Default is dropdown现在,您可以简化HTML以呈现无线电按钮。
要将HTML必需的属性添加到现有的表单中,您可以这样做:
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
widgets = {
'disaster_recovery': forms.RadioSelect(attrs={"required": "required"}),
}这是相关的关于自定义属性的文档
https://stackoverflow.com/questions/41559454
复制相似问题