如何在我的Django博客上制作下一个和上一个帖子按钮?

时间:2017-02-25 01:27:26

标签: python django

我在Django / Python的博客上制作下一个和上一个帖子按钮。 我认为如果我将下一个或上一个ID文章提供给我的网址,例如http://localhost:8000/3/,就可以了。

所以我做了如下

next_article = Article.objects.filter(id__gt=article.id).order_by('id').first()
previous_article = Article.objects.filter(id__lt=article.id).order_by('id').first()

<li><a href=" {{ previous_article }} ">Previous</a></li>
<li><a href=" {{ next_article }} ">Next</a></li>

他们的返回值肯定只是我在控制台中打印它们时的数字。 但它在我的真实博客上无效。它们的值与当前帖子的原始ID相同。 我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

你这么做是什么意思:

<li><a href=" {{ previous_article }} ">Previous</a></li>
<li><a href=" {{ next_article }} ">Next</a></li>

href应该是网址吗?

也许使用:

<li><a href=" {% url 'your-article-url-name' article.id-1 %} ">Previous</a></li>
<li><a href=" {% url 'your-article-url-name' article.id+1 %} ">Next</a></li>

如果您的网址如下:

url(r'^\d+/$', views.your-article-view, name='your-article-url-name')

或者,如果您在模型中为文章定义了get_absloute_url,则可以使用:

<li><a href=" {{ previous_article.get_absloute_url }} ">Previous</a></li>
<li><a href=" {{ next_article.get_absloute_url }} ">Next</a></li>