删除使用Django模板中的选项定义的选择选项的默认缩进

时间:2016-04-27 16:38:09

标签: python django templates

在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>

与空标签关联的选项将以缩进显示。如何删除此缩进?任何帮助,将不胜感激。感谢。

1 个答案:

答案 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如何呈现字段值的人工制品,绝对没有记录/支持的行为。我不会依赖它。我也不确定有三个“空”选项意味着什么!