我正在尝试将所有图片链接存在于文件夹中。目前,我手动分配链接。但是,我希望我的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
文件夹中。
答案 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 %}