用于循环的Django模板<select>在select之后呈现值

时间:2016-07-30 14:56:44

标签: django forms django-forms django-templates

我试图使用JQuery小部件多次选择而不是默认。 正如您所看到的,我尝试将选择选项直接渲染到&lt; select&gt;标签但是,在&lt; / select&gt;之后呈现它是很奇怪的标签。 (for循环位于此标记内,而不是之后) 编辑: Simly,这是在模板中: &LT;标记&GT; {%for field in field.choices%} {{choice}} {%endfor%}&lt; / tag&gt; 但Django渲染它就像它: &LT;标记&GT;&LT; /标签&GT; {%for field in field.choices%} {{choice}} {%endfor%} 这是渲染: &lt; div class =&#34; col-xs-5&#34;&gt;             &lt; select name =&#34; from []&#34; ID =&#34;多选&#34;类=&#34;形状控制&#34;大小=&#34; 8&#34;多个=#&34;多个&#34;&GT; &LT; /选择&GT; #选项在此标记之后呈现 &lt; option value =&#34; 97&#34;&gt; Slovak&lt; / option&gt; &lt; option value =&#34; 98&#34;&gt; Russian&lt; / option&gt; &lt; option value =&#34; 99&#34;&gt; Magyar&lt; / option&gt; &lt; option value =&#34; 100&#34;&gt; English&lt; / option&gt; &lt; option value =&#34; 101&#34;&gt; Croatian&lt; / option&gt; &lt; option value =&#34; 102&#34;&gt;西班牙语&lt; / option&gt; &lt; option value =&#34; 103&#34;&gt; Dutch&lt; / option&gt; &lt; option value =&#34; 104&#34;&gt;爱沙尼亚&lt; /选项&gt; &lt; option value =&#34; 105&#34;&gt; French&lt; / option&gt; &lt; option value =&#34; 106&#34;&gt; DSADSA&lt; / option&gt;等等.... 这是模板: {%extends&#39; base.html&#39; %} {%load crispy_forms_tags%} {%load static%} {%block head%}     &lt; script type =&#34; text / javascript&#34; src =&#34; {%static&#34; js / scripts / multiselect.min.js&#34; %}&#34;&GT;&LT; /脚本&GT;     &lt; script type =&#34; text / javascript&#34;&gt;         jQuery(document).ready(function($){             $(&#39;#多选&#39;)多选();         });     &LT; /脚本&GT; {%endblock%} {%block content%}     &lt; h1&gt;成为翻译&lt; / h1&gt;     &lt; form id =&#34; user_form&#34;方法=&#34;后&#34;行动=&#34;&#34;&GT;         {%csrf_token%}         {{register_as_translator_form |脆的}}             &lt; button class =&#34; accordion&#34;类型=&#34;提交&#34;命名=&#34;提交&#34;值=&#34;寄存器&#34;&GT;注册&LT; /按钮&GT;     &LT; /形式&GT;     &lt; div class =&#34; row&#34;&gt;         &lt; div class =&#34; col-xs-5&#34;&gt;             &lt; select name =&#34; from []&#34; ID =&#34;多选&#34;类=&#34;形状控制&#34;大小=&#34; 8&#34;多个=#&34;多个&#34;&GT;                 {%for register in_ register_as_translator_form.languages%}                     {{ 选择 }}                 {%endfor%}             &LT; /选择&GT;         &LT; / DIV&GT;         &lt; div class =&#34; col-xs-2&#34;&gt;             &lt; button type =&#34; button&#34; ID =&#34; multiselect_rightAll&#34; class =&#34; btn btn-block&#34;&gt;&lt; i                     class =&#34; glyphicon glyphicon-forward&#34;&gt;&lt; / i&gt;&lt; / button&gt;             &lt; button type =&#34; button&#34; ID =&#34; multiselect_rightSelected&#34; class =&#34; btn btn-block&#34;&gt;&lt; i                     class =&#34; glyphicon glyphicon-chevron-right&#34;&gt;&lt; / i&gt;&lt; / button&gt;             &lt; button type =&#34; button&#34; ID =&#34; multiselect_leftSelected&#34; class =&#34; btn btn-block&#34;&gt;&lt; i                     class =&#34; glyphicon glyphicon-chevron-left&#34;&gt;&lt; / i&gt;&lt; / button&gt;             &lt; button type =&#34; button&#34; ID =&#34; multiselect_leftAll&#34; class =&#34; btn btn-block&#34;&gt;&lt; i                     class =&#34; glyphicon glyphicon-backward&#34;&gt;&lt; / i&gt;&lt; / button&gt;         &LT; / DIV&GT;         &lt; div class =&#34; col-xs-5&#34;&gt;             &lt; select name =&#34; to []&#34; ID =&#34; multiselect_to&#34;类=&#34;形状控制&#34;大小=&#34; 8&#34;多个=#&34;多个&#34;&GT;&LT; /选择&GT;         &LT; / DIV&GT;     &LT; / DIV&GT; {%endblock%} 不幸的是,它呈现了这个: 你知道该怎么办吗?

1 个答案:

答案 0 :(得分:1)

如果register_as_translator_form.languages返回字符串列表,可能会发生这种情况,请尝试这种方式:

    <select name="from[]" id="multiselect" class="form-control" size="8" multiple="multiple">
        {% for choice in register_as_translator_form.languages %}
            <option value="{{ choice }}">{{ choice }}</option>
        {% endfor %}
    </select>