2016-01-13 107 views
0

昨天才开始搞Django,我一直在这个问题上停留了5个多小时。我有一个网页,这是一个表,这个计划是,它看起来像:如何为动态生成的图像生成网址?

Name - Total Badges - Badges 
Bob -    1 - @(level 3) 
Mike -    3 - @(level 5) | &(level 7) | $(level 19) 

在现实中有可能会数百独特的图像代表数十“徽章”(而不是实际使用徽章...只是图像的图像表示与覆盖在它上面的计数器)。在表模板中,我尝试了50万种尝试生成链接到内部图像的url的不同方法。我尝试过的一个例子应该说明我的意图是什么:

... 
<tr> Name </tr> 
<tr> Total Badges </tr> 
<tr> Badges </tr> 

{% if profile %} 
{% for name, badges in profile %} 
    <tr> 
    <td> {{ name }} </td> 
    <td> {{ badges.count_all }} </td> 
    {% for badge in badges %} 
    {% static "MyApp/Images/{{badge}}.png" as image %} 
    <img src="{{ image }}"> 
    {% endfor %} 
    </tr> 
{% endfor %} 

这会发生什么,它会产生圆形和三角形错误图像。但是,如果我硬编码{%static“MyApp/Images/AmpersandBadge100.png”%}它的工作。我认为,不是替换{{badge}} var,而是简单地将其渲染为“MyApp/Images/{{badge}}。png”。

我甚至不知道谷歌应该怎么做,并且4个小时的文档搜索导致我相信静态文件是显示内部图像的唯一方法。但这可能不是事实。

+0

通常情况下,您可以使用'{{image.url}}',但您的models.py的外观如何? – Hybrid

回答

0

我发布了一些更多的帖子后,经过一些修补后终于找到了一个解决方案。

{% for name, badges in profile %} 

... 

    <td> 
    {% for badge in badges %} 
    ## {{ badge }}s look like "MyApp/images/%s.png"%badge 
    <img src="{% static "" %}{{ badge}}"> 

不知道它是如何工作的,但它确实如此。