我可以从每个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
中,这不起作用。
如何在这样的路径中的其他变量中使用变量?
答案 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 }}