Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除使用Django模板中的选项定义的选择选项的默认缩进_Python_Django_Templates - Fatal编程技术网

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

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=

在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>
在我的模板中,我有以下内容:

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的串联?