Получить предыдущий / следующий элемент с помощью PK - PullRequest
0 голосов
/ 13 февраля 2019

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(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"]

Но я не знаком сОЦК.Я сделал динамические URL, переопределив get_context_data, но теперь я знаю, как получить следующий или предыдущий объект, используя pk.

Я думал, что использование:

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

поможет мне, но я немного застрял на этом.

1 Ответ

0 голосов
/ 13 февраля 2019

Добро пожаловать в StackOverflow!Здесь можно отсортировать Content в каком-либо поле, например name.Из этого отсортированного списка найдите индекс i текущего экземпляра, а затем получите PK экземпляра i-1.Это не очень хороший ответ, если у вас есть потенциально большой список вещей, но если вы только учитесь, это хорошее начало.

...