Блог Django генерирует следующие / предыдущие записи - PullRequest
1 голос
/ 22 июня 2010

В приложении блога (которое я в основном построил после обучения) я хотел бы иметь ссылку на следующий и предыдущий пост в просмотре постов на одной странице. Файл urls.py приложения блога выглядит следующим образом:

from django.conf.urls.defaults import *
from django.views.generic import list_detail
from sandy.blog.models import Post


urlpatterns = patterns('',
    url(r'^post/(?P<slug>.*)/$', list_detail.object_detail,
    {'queryset': Post.objects.all(), 'template_object_name': 'post',},
    name="single_post"),
    url(r'^$', list_detail.object_list,
    {'queryset': Post.objects.order_by('-published'), 'template_object_name': 'post',},
    name="blog_home"),

)

В одностраничном шаблоне я хотел бы сделать что-то вроде этого:

<p><a href="{% url single_post slug=[how would I derive it???] %}">Previous Post</a></p>

У меня есть объект Post как пост, доступный в шаблоне, поэтому я могу сделать что-то вроде

{% url single_post slug = post.slug%} для текущей страницы, но хотелось бы иметь возможность делать что-то вроде slug = post [-1] .slug или чего-то еще. Есть ли в комплекте простые батарейки для этого?

Конечно, необходимо провести некоторую проверку (чтобы увидеть, есть ли предыдущий пост или нет), и мне нужно будет повторить его и для ссылки "следующий пост".

Я ходил кругами, чтобы заставить это работать. Есть ли способ, или я вынужден выписать полный просмотр страницы.

1 Ответ

4 голосов
/ 22 июня 2010

Требуются методы модели get_next_by_FOO() и get_previous_by_FOO().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...