3
我想顯示一個基於多對多關係的對象列表(圖片/ Gallery中間圖庫模型)。Django在模板中顯示多對多 - 排序忽略?
Galleryimage有一個額外的字段叫做位置,我想用它來管理圖像在模板中列出的順序。
我也有一個頁面模型,可以選擇有一個畫廊附加到它。
我的模式是這樣的:
class Page(models.Model):
gallery = models.ForeignKey(Gallery, blank=True, null=True)
slug = models.SlugField()
title = models.CharField(max_length=200)
content = models.TextField()
def __unicode__(self):
return self.title
class Image(models.Model):
title = models.CharField(max_length=50)
image = models.ImageField(upload_to='images')
def __unicode__(self):
return self.title
class Gallery(models.Model):
title = models.CharField(max_length=50)
images = models.ManyToManyField(Image, through='Galleryimage')
def __unicode__(self):
return self.title
class Galleryimage(models.Model):
image = models.ForeignKey(Image)
gallery = models.ForeignKey(Gallery)
position = models.IntegerField()
class Meta:
ordering = ['position']
我在我看來檢索頁面模式是這樣的:
def detail(request, page_id):
p = get_object_or_404(Page, pk=page_id)
return render_to_response('detail.html', {'page': p},
context_instance=RequestContext(request))
最後,我在像這樣的模板顯示的圖像:
{% block images %}
{% if page.gallery %}
{% for image in page.gallery.images.all %}
<a rel="gallery" href="{{ STATIC_URL }}{{ image.image }}"></a>
{% endfor %}
{% endif %}
{% endblock %}
圖像都顯示爲預期但是,順序似乎總是相同,我做了什麼。
任何人都可以給我一個正確的方向推動嗎?
任何意見讚賞。
謝謝。
你能解釋一下'按預期展示'和'不管我做什麼'是什麼意思。你在做什麼,你期望改變圖像的順序? – 2011-05-19 16:34:35