将动态值传递给内置的Django url

时间:2019-01-14 18:39:18

标签: python django django-templates

在一个视图中,我正在维护一个字典,其中包含一些数据,这些数据我希望在the Django url built-in模板的<a>中显示。

my_view.py

links = [
  {
    'name': 'link 1',
    'pattern': 'fe:upload'
  },
  {
    'name': 'link 2',
    'pattern': 'fe:download'
  }
]

它将像这样硬编码:

<a href="{% url 'fe:upload' id %}">up</a>
<a href="{% url 'fe:download' id %}">down</a>

但是我很难将其放入循环

my_template.html

<ul>
  {% for link in links %}
    <li>
      <a href='{% url link.pattern id %}'>{{link.name}}</a>
    </li>
  {% endfor %}
</ul>

我尝试过:

  • 使用\和HTML实体对引号进行转义
  • 将href放入一个临时变量中,例如:{% with href=url 'link.pattern' %}并得到错误消息:
  

u'with' received an invalid token: u"'link.pattern'"

如何将动态模式放入此循环中以生成锚点?

1 个答案:

答案 0 :(得分:2)

您是否尝试过以下方法:

{% with link.pattern as link_pattern %}
    <li>
      <a href='{% url link_pattern id %}'>{{link.name}}</a>
    </li>
{% endwith %}