在forms.py中,我定义了以下内容:
SURVEY_YEAR_EMPTY_LABEL_CHOICES = [(1, 'Select Survey Year'), (2, 'Illegible'), (3, 'Not Provided')]
class SurveyYearForm(forms.ModelForm):
survey_year = forms.ModelChoiceField(label='Survey Year', required = False, queryset=SurveyYear.objects.all(), empty_label=SURVEY_YEAR_EMPTY_LABEL_CHOICES)
在我的模板中,我有以下内容:
<div class="form-row">
{{ form.survey_year.errors }}
{{ form.survey_year.label_tag }} {{ form.survey_year }}
</div>
与空标签关联的选项将以缩进显示。如何删除此缩进?任何帮助,将不胜感激。感谢。
答案 0 :(得分:0)
这是因为Django在optgroup
内呈现了一组选项。您选择的呈现的html类似于:
<optgroup>
<option value="1">Select Survey Year</option>
<option value="2">Illegible</option>
<option value="3">Not Provided</option>
</optgroup>
默认情况下,大多数浏览器会在optgroup中为选项添加一些左边填充,这就是你看到缩进的原因。你可以简单地在CSS中重置它:
optgroup > option {
padding-left: 0;
}
显然,您需要跨浏览器进行测试。
PS:事实上你可以这样做(向empty_label
提供一个元组)是一个关于Django如何呈现字段值的人工制品,绝对没有记录/支持的行为。我不会依赖它。我也不确定有三个“空”选项意味着什么!