在没有id的情况下仅在django中显示某些照片画廊

时间:2013-08-26 16:47:18

标签: css django photo

我对django不太熟悉,但我希望有人能告诉我是否有可能。

我目前正在调用最新的4个照片集,如下所示:

{% load photogalleries %} 
                {% get_latest_galleries_from_set front-page as photo_gallery limit 4 %}
                {% for gallery in photo_gallery %}
                    <div class="rightSidePairThumb">
                        <a href="{{ gallery.get_first_photo.get_absolute_url }}"><img src="{% mogrify gallery.get_first_photo.get_photo.get_photo_url resize '900x750' filter 'sharpen' %}" alt="{{ gallery.name }}" class="link"/></a>
                        <div class="rightSidePairCat">PHOTOS</div>
                        <div class="coolName"><a href="{{ gallery.get_first_photo.get_absolute_url }}">{{ gallery.name }}</a></div>
                        <hr class="style-two">
                    </div>
                {% endfor %}

我不再希望同时调用4个最新的画廊,而是在我的页面上的不同div中一次调用一个。所以在一个div中,我想打电话给最新的画廊。在另一个div中,我想打电话给第二个最新的画廊。在另一个div,只是第3个最新的画廊等。

我尝试使用id的'exclude',但我不知道图库ID。如果有人知道如何完成我想做的事情,我会永远感激。

我可以使用css兄弟组合器实现这一点,(我在我的页面上的其他地方做了)但代码很长,看起来...... hacky。我希望django有一个更简单的方法。

同样,我对django不是很熟悉,所以在菜鸟上放轻松。

提前致谢!

2 个答案:

答案 0 :(得分:0)

您可以按索引访问列表中的特定图库:

{{ photo_gallery.0 }}
{{ photo_gallery.0.get_first_photo.get_absolute_url }}

答案 1 :(得分:0)

您可以使用{% if forloop.counter0 == X %}检查您所在的循环,从而完成您想要的任务。我不确定你的意思是“我不知道画廊ID”,{{ gallery.id }}不起作用?反正..

一种可能性:

{% for gallery in galleries %}
    <div class="{% if forloop.first %}latest-gal{% elif forloop.counter0 == 1 %}second-to-latest-gal{% elif forloop.last %}oldest-gal{% else %}third-to-latest-gal{% endif %}">

虽然这看起来很讨厌。相反,我建议您在ID中使用{{ forloop.counter0 }},例如:

{% for gallery in galleries %}
    <div id="gallery-{{ forloop.counter0 }}">

通常我会在{{ gallery.slug }}中抛出{{ gallery.id }}<div id=gallery-",但您似乎只想要最新的4个画廊,这就是我使用{{ forloop.counter0 }}的原因。它将返回<div id="gallery-0">以获取最新的图库,依此类推。