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