Python 在django模板中使用嵌套列表

Python 在django模板中使用嵌套列表,python,django,django-templates,Python,Django,Django Templates,我有一个1d查询集,我希望它基于其每个值进行嵌套。例如,在下面这样的模板中 <ul> {% for dept in dept_queryset %} <li>{{ dept.code }} {{ dept.name }}</li> {% endfor %} </ul> 然而,我想要的是这样的东西: 1000 a 1100 b 1200 c 2000 q 2100 w 2110 e

我有一个1d查询集,我希望它基于其每个值进行嵌套。例如,在下面这样的模板中

<ul>
  {% for dept in dept_queryset %}
      <li>{{ dept.code }} {{ dept.name }}</li>
  {% endfor %}
</ul>
然而,我想要的是这样的东西:

1000 a
    1100 b
    1200 c
2000 q
    2100 w
        2110 e
            2111 t
...
    2200 t
        2210 h
            2211 b
...
    2300 p
    
<table>
{% for dept in dept_queryset %}
    <tr>
        {% if not dept.code|divisibleby:"10" %}<td></td>{% endif %}
        {% if not dept.code|divisibleby:"100" %}<td></td>{% endif %}
        {% if not dept.code|divisibleby:"1000" %}<td></td>{% endif %}
        <td>{{ dept.code }} {{ dept.name }}</td>
    </tr>
{% endfor %}
</table>
我可以硬编码每个查询集并将其用作上下文,但我想知道是否有任何python方法。我尝试了
可被
过滤器整除,但没有成功。我知道我应该改变我的模板标签,当然,我希望得到一些关于它的指导。任何帮助都将不胜感激。谢谢

模板过滤器应该适合您。您的错误似乎是在筛选器和第二个参数之间添加了一个空格;应该没有空间

因此,这应该是可行的:

<ul>
  {% for dept in dept_queryset %}
      <li>
          {% if not dept.code|divisibleby:"10" %}&nbsp;{% endif %}
          {% if not dept.code|divisibleby:"100" %}&nbsp;{% endif %}
          {% if not dept.code|divisibleby:"1000" %}&nbsp;{% endif %}
          {{ dept.code }} {{ dept.name }}
      </li>
  {% endfor %}
</ul>
    {部门查询集%中的部门为%
  • {%if非部门代码|可分割为:“10”}{%endif%} {%if非部门代码|可分割为:“100”}{%endif%} {%if非部门代码|可分割为:“1000”%}{%endif%} {{dept.code}}{{dept.name}}
  • {%endfor%}

您评论说您想要嵌套的HTML列表。这是相当棘手和复杂的模板中做的只是模板过滤器。使用Python代码在视图中更好地完成这种嵌套分组

我能在模板中做的最接近的事情就是在数据之前有不同数量的空单元格的HTML表,可能如下所示:

1000 a
    1100 b
    1200 c
2000 q
    2100 w
        2110 e
            2111 t
...
    2200 t
        2210 h
            2211 b
...
    2300 p
    
<table>
{% for dept in dept_queryset %}
    <tr>
        {% if not dept.code|divisibleby:"10" %}<td></td>{% endif %}
        {% if not dept.code|divisibleby:"100" %}<td></td>{% endif %}
        {% if not dept.code|divisibleby:"1000" %}<td></td>{% endif %}
        <td>{{ dept.code }} {{ dept.name }}</td>
    </tr>
{% endfor %}
</table>

{部门查询集%中的部门为%
{%if非部门代码|可分割为:“10”}{%endif%}
{%if非部门代码|可分割为:“100”}{%endif%}
{%if非部门代码|可分割为:“1000”%}{%endif%}
{{dept.code}}{{dept.name}}
{%endfor%}

显示您尝试的内容
“我尝试了按筛选器划分,但没有成功”
。对于初学者,我尝试了以下内容:
{%if dept.code | divisibleby:“1000”}
,但不起作用。我不确定如何应用这种逻辑,因为
divisibleby
只返回布尔值,而且它只能用于模板变量,我理解它不能用于标记。谢谢。但是,我可以让
li
更具语义吗?我的意思是,我想对小于1000的物品使用嵌套的ul标签。