我在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相同。 我该如何做到这一点?
答案 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>