私は写真ギャラリーを建てています。公開されているものは私に必要なものを与えてくれないので、私はそれを傷から作ります。日付順に並び替えられていない正しい順序のクエリーセットを外部キーでソートする方法は?
インデックスページでは、フォトモデルから写真(random
)の1つを持ってくるためにアルバムモデルと各アルバムのランダムなアルバム(これは問題ありません)を取得する必要があります。
モデル:
class Album(models.Model):
title = models.CharField('כותרת', max_length=100, db_index=True)
created = models.DateTimeField('תאריך פרסום', auto_now_add=True)
creator = models.ForeignKey(User, related_name='galleries_creator', verbose_name='נכתב ע"י')
class Photo(models.Model):
title = models.CharField('כותרת', max_length=100)
album = models.ForeignKey(Album, verbose_name='שייך לאלבום')
photo = models.ImageField('תמונה', blank=True, upload_to=get_image_path)
photo_mid = models.ImageField('תמונה בינונית', blank=True, upload_to='images/galleries/mid/', editable=False)
photo_thumb = models.ImageField('תמונה קטנה', blank=True, upload_to='images/galleries/thumbs/', editable=False)
created = models.DateTimeField('תאריך פרסום', auto_now_add=True)
is_landscape = models.NullBooleanField(blank=True, verbose_name='האם תמונת לנדסקייפ', editable=False)
私はそれを見るようなものがテンプレートでアルバムを反復処理し、アルバムのために正しい写真を得るために、私はチェーンにアルバムのリストを必要とすること、です私が得た写真のリストは正しい順序(album object, photo object etc
)であるが、私が得ているのはすべてのアルバムとすべての写真(正しい順序であるが、テンプレートでは何も明らかではない)である。
ビュー:
def index(request):
albums = Album.objects.all().order_by('?')[:10]
album_photo_lst = []
for album in albums:
album_photo_lst.append(Photo.objects.filter(album=album).order_by('?')[:1])
album_list = list(chain(albums,album_photo_lst))
return render_to_response('galleries/index.html',{'albums':album_list}, context_instance=RequestContext(request))
多分私はこれを複雑に上だと、おそらくいくつかのいずれかが、私はこのスルー得るのを助けることができます。
10倍
、 エレズ
Udiに感謝し、チェーンステートメントを削除しますか? – Erez
はい、 'album_photo_lst'と' chain'を削除してください – Udi
本当にありがとうございます。実際の画像形式をIMGタグに取得するのに問題がありますが、これを解決する必要がある別の問題です。 – Erez