Django模型字段包含元组列表 - 如何在模板

时间:2016-07-06 04:22:31

标签: django python-2.7

我在Django模型字段中有一个名为color_palette的元组列表。它由图像组成的5个RGB颜色值。

[(29, 28, 28), 
(239, 244, 244), 
(158, 165, 172), 
(89, 162, 203), 
(106, 141, 169)]

我想在模板中解压缩这些以及其他模型字段。

{% for screenshot in country.screenshots_set.all %}
    <img src="{{ screenshot.thumbnail.url }}" alt="{{ country.name }}"  class="thumbnail" width="150" height="150" style="border:none;"/>
{% endfor %}        

我可以使用以下命令获取要在模板上显示的整个元组列表:

{% for screenshot in country.screenshots_set.all %}
    {{ screenshot.color_palette }}
    <img src="{{ screenshot.thumbnail.url }}" alt="{{ country.name }}"  class="thumbnail" width="150" height="150" style="border:none;"/>
{% endfor %}  

但是尚未想出在模板中解压缩它们的方法。

我试过这个分裂列表字符

<ul>
    {% for color in screenshot.color_palette %}    
         <li>{{ color.0 }}</li>
         <li>{{ color.1 }}</li>
         <li>{{ color.2 }}</li>
         <li>{{ color.3 }}</li>
         <li>{{ color.4 }}</li>  
    {% endfor %}
</ul>

此尝试导致列表中所有字符分割:

 <ul>
     {% for color in screenshot.color_palette %}
         <li>{{ color }}</li>
     {% endfor %}    
 </ul>

这甚至可能是我尝试这样做的方式吗?

解压缩对我不起作用的元组的解决方案适用于在视图中生成并发送到模板的列表。

我想这是因为我试图迭代的东西是一个字符串,而视图会发送一个可迭代的对象。

1 个答案:

答案 0 :(得分:3)

我创建了一个模型方法,并在必要时使用它。

{{ screenshot.colors_list }}

假设您使用<img src="~/Content/center-icon.png" id="center-@car.Car_ID" data-x=@car.X data-y=@car.Y /> ^^ ^^ float 呈现模板,您可以在模板中使用var $carCenterId = $('#' + event.target.id) var x = $carCenterId.data("x"); var y = $carCenterId.data("y"); carZoomCenter(x, y); 获取颜色列表。