Python 删除使用Django模板中的选项定义的选择选项的默认缩进
在forms.py中,我定义了以下内容:Python 删除使用Django模板中的选项定义的选择选项的默认缩进,python,django,templates,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=
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>
在我的模板中,我有以下内容:
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>
{{form.survey_year.errors}
{{form.survey_year.label_tag}{{{form.survey_year}}
与空标签关联的选项将以缩进显示。如何删除此缩进?任何帮助都将不胜感激。谢谢。发生这种情况是因为Django正在
optgroup
中呈现您的选项集。选项的呈现html将类似于:
<optgroup>
<option value="1">Select Survey Year</option>
<option value="2">Illegible</option>
<option value="3">Not Provided</option>
</optgroup>
显然,您需要跨浏览器进行测试
PS:您可以这样做(提供一个元组到
empty_label
)的事实是Django如何呈现字段值的人工制品,并且肯定没有记录/支持的行为。我不会相信的。我也不知道有三个“空”选项意味着什么 发生这种情况是因为Django正在optgroup
中呈现您的选项集。选项的呈现html将类似于:
<optgroup>
<option value="1">Select Survey Year</option>
<option value="2">Illegible</option>
<option value="3">Not Provided</option>
</optgroup>
显然,您需要跨浏览器进行测试
PS:您可以这样做(提供一个元组到
empty_label
)的事实是Django如何呈现字段值的人工制品,并且肯定没有记录/支持的行为。我不会相信的。我也不知道有三个“空”选项意味着什么 空标签应为字符串。为什么要使用元组列表?因为我希望空标签是一个选项列表,而不是一个由字符串表示的选项。它可以工作,但列表中的选项正在缩进。有没有办法去掉缩进?空标签应该是字符串。为什么要使用元组列表?因为我希望空标签是一个选项列表,而不是一个由字符串表示的选项。它可以工作,但列表中的选项正在缩进。有没有办法消除压痕?谢谢你详细的回答。我实际上要做的是向从数据库返回的查询集添加2个选项,而不是向空标签提供一个元组,空标签用于接受单个字符串。在forms.py中是否有这样做的方法?这实际上取决于您想对这些字段执行什么操作-这些选项是空的(即,您丢弃信息,不在任何地方使用),还是要将其保存在某个位置?如果是后者,则您可能需要使用ChoiceField
而不是ModelChoiceField
,并向其添加自定义+模型选项。是否有任何示例说明ChoiceField的“选项”是查询集和列表的串联?感谢您的详细回答。我实际上要做的是向从数据库返回的查询集添加2个选项,而不是向空标签提供一个元组,空标签用于接受单个字符串。在forms.py中是否有这样做的方法?这实际上取决于您想对这些字段执行什么操作-这些选项是空的(即,您丢弃信息,不在任何地方使用),还是要将其保存在某个位置?如果是后者,则您可能需要使用ChoiceField
而不是ModelChoiceField
,并向其添加自定义+模型选项。是否有任何示例说明ChoiceField的“选项”是QuerySet和List的串联?