Я пытаюсь отобразить список объектов (изображений) на основе отношения «многие ко многим» (изображение / галерея с промежуточной моделью Galleryimage).
В 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 %}
Все изображения отображаются, как и ожидалось, однако, порядок всегда кажется одинаковым, независимо от того, что я делаю.
Может кто-нибудь подсказатьв правильном направлении?
Любой совет приветствуется.
Спасибо.