迭代django

时间:2016-05-17 07:49:08

标签: python django

我正在尝试将所有图片链接存在于文件夹中。目前,我手动分配链接。但是,我希望我的django能够获取特定文件夹中的所有图像而不管它们的名称。

<li>
   <a href="{% static "styles/jamia/1.jpg" %}"  rel="prettyPhoto[gallery1]"><img src="{% static "styles/jamia/1.jpg" %}"></a>
</li> 

<li>
  <a href="{% static "styles/jamia/2.jpg" %}"  rel="prettyPhoto[gallery1]"><img src="{% static "styles/jamia/2.jpg" %}"></a>
</li>

我正在寻找类似的东西:

{% for file in {% static "styles/jamia/" %}  %}
    <img src="{{file}}" alt="">
{% endfor %}

所有图片都出现在jamia文件夹中。

2 个答案:

答案 0 :(得分:4)

这不是Django内置的东西。但是Django只是Python,您可以使用普通的Python文件函数在视图中获取列表:

files = os.listdir(os.path.join(settings.STATIC_ROOT, "styles/jamia"))

答案 1 :(得分:1)

这似乎已经被部分回答了,但是可能需要一些搜索所有的答案。因此,为了在一个地方提供对这些问题的完整答案:

在views.py中,您可能想要做其他回答说的事情:

context_dict = {}
files = os.listdir(os.path.join(settings.STATIC_DIR, "styles/jamia/"))
context_dict['files'] = files
return render(request, 'home.html', context=context_dict)

然后在html模板中,您可以循环显示图片。另外,我们使用with将根目录连接到静态文件中,并在views.py中拉出这些名称,但是您可以将整个路径串联在视图中,而不必使用。因此,在home.html中:

{% for file in files %}
    {% with 'images/'|file as image_static %}
        <img src="{% static image_static %}" alt="">
    {% endwith %}
{% endfor %}