Затем предыдущие ссылки от набора запроса / универсальные представления

Мне установили довольно простой запрос и связанный дженерик представления:

f_detail = {
         'queryset': Foto.objects.all(),
         'template_name': 'foto_dettaglio.html',
         "template_object_name" : "foto",
       }

urlpatterns = patterns('',
# This very include
(r'^foto/(?P<object_id>\d+)/$', list_detail.object_detail, f_detail, ),
)

Просто шаблон для генерации страницы детали фотографии: таким образом, нет никакого представления.


Существует ли простой способ иметь ссылку на предыдущий | следующий элемент в шаблоне, вручную не кодируя представление?

Somthing как a:

{% if foto.next_item %} 
  <a href="/path/foto/{{ foto.next_item.id_field }}/">Next</a> 
{% endif}
14
задан eaman 6 February 2010 в 21:58
поделиться

1 ответ

class Foto(model):
  ...
  def get_next(self):
    next = Foto.objects.filter(id__gt=self.id)
    if next:
      return next.first()
    return False

  def get_prev(self):
    prev = Foto.objects.filter(id__lt=self.id).order_by('-id')
    if prev:
      return prev.first()
    return False

вы можете настроить их по своему вкусу. Я просто посмотрел на ваш вопрос еще раз ... чтобы было проще, чем с оператором if, вы можете заставить методы возвращать разметку для ссылки на следующий / предыдущий, если он есть, иначе ничего не возвращать. тогда вы просто сделаете foto.get_next и т. д. также помните, что наборы запросов ленивы, поэтому вы фактически не получаете тонны элементов в следующем / предыдущем.

24
ответ дан 1 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: