Python 使用PK获取上一个/下一个项目

Python 使用PK获取上一个/下一个项目,python,django,django-class-based-views,Python,Django,Django Class Based Views,视图.py class ContentView(TemplateView): model = Content template_name = 'capt/pages/details.html' def get_context_data(self, pk, **kwargs): context = super().get_context_data(**kwargs) context['dataC'] = get_object_or_404(

视图.py

class ContentView(TemplateView):
    model = Content
    template_name = 'capt/pages/details.html'

    def get_context_data(self, pk, **kwargs):
        context = super().get_context_data(**kwargs)
        context['dataC'] = get_object_or_404(Content, title_id =self.kwargs.get('pk'))
        return context
因此,我想获得模型的下一个对象:

class Section(models.Model):
    name = models.CharField(max_length=80, unique=True)

    def get_absolute_url(self):
        return reverse("media", kwargs={"pk":self.pk})

    def __str__(self):
        return self.name

    class Meta:
        ordering = ["-pk"]
但我不熟悉CBV。我通过覆盖get_context_数据创建了动态URL,但现在我知道了如何使用pk获取下一个或上一个对象

我想用:

context['previtem'] = Content.objects.get(pk=self.pk-1)

会帮我的,但我在这件事上有点卡住了。

欢迎来到StackOverflow!这里的一个选项是在一些字段上对
内容进行排序,如
名称
。从该排序列表中,找到当前实例的索引
i
,然后获取实例
i-1
的主键。如果你有一个潜在的大列表,这不是一个好的答案,但如果你只是在学习,这是一个好的开始。

如果你删除了一些记录,那么不能保证有一个对象具有
pk-1
。当然,我理解这一点。但假设我有一个空数据库,我加载了一些数据,但没有删除它。我想从这里开始,然后进行验证。