编辑django表单小部件呈现

时间:2016-07-25 16:28:05

标签: python django django-forms jinja2 multi-model-forms

我有一个Django表单,其中一个字段定义为:

widgets = {
    'name': forms.CheckboxSelectMultiple()
}

模板将它们呈现在一个循环中:

{% for field in form %}
    <fieldset class="article-form__field">
        {{ field.label_tag }} {{ field }}
    </fieldset>
{% endfor %}

这表现为:

<fieldset class="article-form__field">
    <label for="category-name_0">Category:</label>
    <ul id="category-name">
        <li><label for="category-name_0"><input id="category-name_0" name="category-name" type="checkbox" value="GEN" /> General information</label></li>
        <li><label for="category-name_1"><input id="category-name_1" name="category-name" type="checkbox" value="FOO" /> Food and drinks</label></li>
    </ul>
</fieldset>

简而言之:<label><input></label>。但是,我希望输出为<label></label><input>

这可能,如果可能,怎么样?

完整代码为here

1 个答案:

答案 0 :(得分:1)

{% for field in form %}
    <fieldset class="article-form__field">
    {% if field.name != "category-name" %}
        {{ field.label_tag }} {{ field }}
    {% else %}
        {{ field.label_tag }}
        <ul id={{ field.auto_id }}>
        {% for checkbox in field %}
            <li> 
                <label for="{{ checkbox.id_for_label }}">
                    {{ checkbox.choice_label }}
                </label>
                {{ checkbox.tag }}
            </li>
        {% endfor %}
        </ul>
    {% endif %}
    </fieldset>
{% endfor %}