首页 > 解决方案 > 在 url 标签中访问字典(Django)

问题描述

我的 Django 应用程序有以下 Jinja 代码:

      <ul>
        {% for key, value in course_avrg.items %}
          <li>
            <a href="{% url 'course-detail' pk=course_ids[key] %}">{{ key }}:</a> {{ value }}
          </li>
        {% endfor %}
      </ul>

course_ids是一个带有键course name(str)和值course id(int)的字典。

这是另一个具有键(str)和值(int)的course_avrg字典course namecourse average

"key"在上面的代码中,我试图通过将课程名称传递给course_ids字典来获取每门课程的主键值(int) 。

但是,我收到以下错误:

无法解析剩余部分:来自“course_ids[key]”的“[key]”

那么我应该如何从 Jinja URL 标签中访问字典值呢?

标签: django

解决方案


您可以编写自定义模板过滤器

@register.filter
def getvalue(dict, key):    
    return dict[key]

并在这样的模板中使用它:

<a href="{% url 'course-detail' pk=course_ids|getvalue:key %}">{{ key }}:</a> {{ value }}

推荐阅读