首页 > 解决方案 > 为什么过滤器在 Django 模板的迭代中不会改变值

问题描述

我在 to_and.py 文件中有自定义过滤器,用于获取详细名称

from django import template

register = template.Library()

@register.filter
def verbose_name(objects):
    return objects._meta.verbose_name

但是当我得到视图中的值时,它只会给我迭代中的第一个模型名称,我的代码查询集有两个单独的模型

 {% load to_and %}
                 {{links}}
              {% for link in links %}
                     {% if link|verbose_name == "Unit" %}
                            {{link|verbose_name}}
                            {{link.id}}
                     {% endif %}
              {% endfor %}       

查看此代码的输出 在此处输入图像描述

标签: pythondjango

解决方案


在模型中我忘记更改子单元的详细名称

just Change the verbose_name in models
class Meta:
        """Meta definition for Unit."""

        verbose_name = 'SubUnit'
        verbose_name_plural = 'SubUnits'

推荐阅读