Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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_Django Forms_Jinja2_Multi Model Forms - Fatal编程技术网

Python 编辑django表单小部件呈现

Python 编辑django表单小部件呈现,python,django,django-forms,jinja2,multi-model-forms,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 %}

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

widgets = {
    'name': forms.CheckboxSelectMultiple()
}
模板以循环方式呈现它们,其中包含:

{% for field in form %}
    <fieldset class="article-form__field">
        {{ field.label_tag }} {{ field }}
    </fieldset>
{% endfor %}
{%用于表单%]中的字段
{{field.label_tag}{{{field}}
{%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>

类别:
  • 一般资料
  • 食物和饮料
简而言之:
。但是,我希望输出为

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

完整代码为。

{code>{%for form%} {%if field.name!=“类别名称”%} {{field.label_tag}{{{field}} {%else%} {{field.label_tag}
    {字段%中的复选框为%1}
  • {{checkbox.choice_label} {{checkbox.tag}
  • {%endfor%}
{%endif%} {%endfor%}
  • (此处介绍了如何自定义渲染)

非常感谢!这解决了我的问题。(在我的示例中,名称实际上是“name”,但这是另一个问题。)有一件事,如果我想对另一个小部件执行相同的操作,该怎么办?或者任意数量的小部件?我可以使用
{%if field.name!=“category name”和field.name!=“other name”%}
?@Flobin可以。我不熟悉Jinja2,但是如果field.name不在['category-name','other name']%}中,也许你可以使用
{%if.
。非常感谢Vladimir!
{% 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 %}