使用django模板变量适用于字体颜色,但不适用于静态路径标记的url

时间:2015-02-08 14:50:58

标签: django templates

我准备了Django html模板,它使用数据库中的模板变量来覆盖页面的标准css。这将允许我使用用户特定的字体颜色。

我让它适用于字体颜色,但是在加载用户特定图像时出错。请参阅以下代码:

<!-- Logo -->  
{% load static %}
<img class="LogoPos img-responsive"
        src="{% static 'img/{{ClubSettingsApplied.0.logo_image}}' %}"
        alt="Generic logo image"
        title="Client logo">
</img>
<!-- Font color -->

<style>
th { 
font-weight: bold; 
color: #{{ClubSettingsApplied.0.font_color}};
padding-left: 0.2em;
}  

</style>

使用模板变量似乎不适用于静态路径标记。

当然,我可以建立完整的网址,包括我视线中的路径......但是也许有一个更聪明的工作。

期待获得一些想法。

1 个答案:

答案 0 :(得分:1)

静态模板标记只接受一个字符串作为参数,它不能在该字符串中呈现另一个变量。

解决方案是使用get_static_prefix模板标记。在这种情况下,它将通过呈现解析静态文件所需的正确前缀来帮助您。

我在django 1.7上测试了这个,django docs说它应该以远远超过1.4或更远的方式工作。

<!-- Logo -->  
{% load static %}
{% get_static_prefix as STATIC_PREFIX %}

<img class="LogoPos img-responsive"
     src="{{ STATIC_PREFIX }}img/{{ClubSettingsApplied.0.logo_image}}"
     alt="Generic logo image"
     title="Client logo">
</img>

<!-- Font color -->
<style>
th { 
    font-weight: bold; 
    color: #{{ClubSettingsApplied.0.font_color}};
    padding-left: 0.2em;
}  
</style>