2012-01-24 16 views
4

こんにちはDjangoにはかなり新しく、ギャラリーで作業しています。私が望むのは、1つに2つのオブジェクトを取得し、3時間後には依然として無責任なものを取得することです。私はこれを試してみましたが、私が取得する方法を見つけるように見えるカントDjangoは2つのオブジェクトを追加して表示します

list_galleries = Gallery.objects.all() 
g = [] 
for gallery in list_galleries: 
    g.append(gallery.latest(limit=1, public=True)) 

return render_to_response('gallery/list_galleries.html', {'list_galleries': list_galleries, 'images': g}) 

をギャラリーのためにphotologueを使用して、私はサムネイルとして、私は最新の追加画像ですべてのギャラリーを一覧表示するディスプレイを持っている

list_galleries forループのキー。

私の見解:

{% for gallery in list_galleries %} 

<p> 
<span class="title"><a href="/gallery/images/{{ gallery.title }}" >{{ gallery.title }}</a> 
Here is the image: <img src="/media/{{ images.0.0.image }}" /> 
</span><br /> 
<span class="flavor">{{ e.date_added|date:"F d, Y, H:m" }}</span><br /> 
</p> 
{% endfor %} 
{% endblock %} 

これを行うための任意の簡単な方法はありますか?

+0

残念ですが、これは私のすべてのギャラリーを一覧表示するビューからのもので、そのギャラリーの画像をサムネイルとして表示したいのです! – daniel

答えて

4

使用zip 2つのリストをマージします

return render_to_response('gallery/list_galleries.html', 
          {'galleries': zip(list_galleries, g)}) 

は、その後、あなたのビューで、あなたがこれを行うことができます: gallerylist_galleriesからのアイテムで、最新の

{% for gallery, latest in galleries %} 
    <!-- your html --> 
{% endfor %} 

gからアイテムです。


Anがより良い解決策は、しかし、あなたのGalleryクラスでメソッドを作成することです:

class Gallery(models.Model): 
    # SQL columns 

    @property 
    def thumb(self): 
     return self.latest(limit=1, public=True) 

次にあなたがリストgを作成する必要はありませんし、あなたのテンプレートであなたは、単にgallery.thumbを使用することができます。

+0

omgありがとう!!!!! – daniel

+0

@DanielX、歓迎です:)。私の代わりの提案も見てください、これはこれを行う良い方法です。 –

関連する問題