2010-06-22 42 views
1

在博客應用程序中(我主要是在教程後構建的),我希望在帖子的單個頁面視圖上有下一個和上一個發佈鏈接。該博客應用程序的urls.py文件看起來像這樣:Django博客生成下一個/上一個條目

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> 

我有帖子對象發佈在模板中,所以我可以爲當前頁面做類似

{%url single_post slug = post.slug%},但希望能夠像slug = post [-1]那樣做。金屬塊管他呢。有沒有簡單的電池包括方法來做到這一點?

當然,需要進行一些檢查(看看是否有以前的帖子),我還需要重複它的'下一篇文章'鏈接。

我一直在繞圈走這個工作。有沒有辦法,還是我不得不寫出完整的頁面視圖。

+0

我的問題不是推導前一篇文章或下一篇文章,而只是想知道是否有某種方式可以在模板中完成,而無需爲其編寫視圖。 – Vernon 2010-06-22 19:12:27

回答

4

您需要get_next_by_FOO()get_previous_by_FOO()模型方法。

+0

我可以在模板中使用它嗎?我不明白 – Vernon 2010-06-22 18:40:19

+0

如果你不需要傳遞任何參數,你會的。如果你確實需要,那麼你將不得不寫一個小視圖。 – 2010-06-23 00:57:18