Я делаю галерею, где у меня есть две модели. как показано ниже
class Gallery(models.Model):
name = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published', auto_now_add=True)
slug_name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class Image(models.Model):
gallery = models.ForeignKey(Gallery)
image = models.ImageField(upload_to='gallery/%Y/%m/%d')
caption = models.TextField(blank=True)
up_date = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.caption
Теперь у меня есть вид, который будет обслуживать одну страницу изображения. Я получаю изображения, как это
def image_page(request, slug_name, image_id):
image = Image.objects.get(pk = image_id)
all = Gallery.objects.get(slug_name = slug_name).image_set.all()
return render_to_response('gallery/image_page.html',
{
'image': image,
'all': all,
}, context_instance = RequestContext(request))
По «изображению» я получаю это единственное изображение. "все" я получаю все изображения, которые, вероятно, нужны в представлении для отображения нумерации страниц. Разбиение на страницы означает только следующую и предыдущую кнопку.
Теперь, если эта единственная страница является первой страницей, предыдущая ссылка не должна отображаться аналогично, если кнопка последней страницы не должна отображаться. Кроме того, обе ссылки должны отображаться.
У меня вопрос, как это сделать в шаблоне? Я пытался использовать цикл for не работает, также другой вопрос, как сделать ссылку на следующее / предыдущее изображение, мои URL ищут /gallery/slug_name/image_id.html [примечание: мой идентификатор изображения не растет постепенно, как 1,2, 3, пример У меня 4 изображения в галерее с идентификаторами 4, 6, 7, 8]
Кстати, я пробовал @ murgatroid99 способом. Работает отлично! Но на самом деле я тогда должен использовать URL-адрес, как это
http://localhost:8000/gallery/fourth-gallery/hello?image=2
То, что я хочу, это использовать нумерацию страниц и URL вроде
http://localhost:8000/gallery/1, http://localhost:8000/gallery/2, http://localhost:8000/gallery/3 Etc