Django模板中变量中的变量

时间:2019-12-11 14:19:00

标签: python django

我可以从每个HTML文件访问全局变量。 该变量称为canAccessClients。它是登录用户有权访问的对象(客户端)的列表。它主要用于菜单中,因此用户只能看到其客户。我可以通过canAccessClients.<some_index>.picture.url找到客户的徽标(其网址)。

现在,我有一个页面,那里只有一些客户端。

我知道这些客户的ID。

此客户ID与canAccessClients列表中的索引显然不同。

因为canAccessClients只是客户端对象的列表。

现在,我需要为知道其ID的同一客户显示徽标。

我通过遍历canAccessClients并寻找所需的ID来做到这一点(也许是个坏主意,但可行)。

{% for client in canAccessClients %}
   {% if client.id == client_data.CLIENT_ID %}
      <img class="client-menu-logo" src="{{ canAccessClients.{{ forloop.counter }}.picture.url }}" alt="logo">
   {% endif %}
{% endfor %}

一切正常,并且可以,但是...我需要将forloop.counter变量传递到canAccessClients.<some_id>.picture.url中,这不起作用。

如何在这样的路径中的其他变量中使用变量?

1 个答案:

答案 0 :(得分:0)

您可以write your own template tag实现这一目标。示例:

@register.simple_tag
def get_image_url_by_id(id):
    url = Client.objects.get(pk=id).image_url # get image url from database
    return url

和在模板中:

{% with get_image_url_by_id forloop.counter as image_url %}
{{ image_url }}
相关问题