新闻页面的页脚需要添加上一篇下一篇导航,queryset 提供了 get_next_sibling()get_prev_sibling() 方法,直接链到模型查询后面即可。

# 上一篇和下一篇
def get_context(self, request):
    context = super().get_context(request)
    if NewsPage.objects.live().get(pk=self.id).get_next_sibling():
        context['next'] = NewsPage.objects.live().get(pk=self.id).get_next_sibling()
    else:
        context['next'] = False

    if NewsPage.objects.live().get(pk=self.id).get_prev_sibling():
        context['prev'] = NewsPage.objects.live().get(pk=self.id).get_prev_sibling()
    else:
        context['prev'] = False

    return context