Как реализовать в django вывод предыдущей статьи в теле текущей?

Добрый день. Пытаюсь реализовать вывод предыдущей статьи, т.е. той, что была опубликована до той, в который происходит фильтрация вызова предыдущей статьи, внутри текущей и чего-то, как-то понимания не хватает как во вьюхе фильтр записать.

Вот такая вьюха
from django.shortcuts import render, get_object_or_404
from project.models import Project

def show_project(request, slug):
    project_content = Project.objects.all()
    project_back = Project.objects.filter(id__gt=project_content.id).order_by('-id')[0]
    project = get_object_or_404(Project, slug=slug)
    return render(request, 'project_tpl.html', {'project':project, 'project_back':project_back, 'project_content':project_content})

Ругается 'QuerySet' object has no attribute 'id'

UP
модель
from django.db import models
from datetime import datetime

class Project(models.Model):
    title = models.CharField(max_length=200, verbose_name='Заголовок')
    slug = models.SlugField('URL', blank='true')
    text = models.TextField(verbose_name='Описание')
    work = models.TextField(verbose_name='Что делали')
    work_list = models.CharField(max_length=200, verbose_name='Перечень работ')
    content = models.TextField(verbose_name='Основное контент')
    create_date = models.DateTimeField('Дата создания', default=datetime.now)
    images = models.ImageField(upload_to='static/img/portfolio', verbose_name='Изображение')
    images_back = models.ImageField(upload_to='static/img/portfolio', verbose_name='Предыдущий проект')
    seo_title = models.CharField(max_length=72, verbose_name='СЕО Заголовок', blank='true')
    seo_description = models.CharField(max_length=124, verbose_name='СЕО Описание', blank='true')
    seo_keywords = models.TextField(max_length=1000,verbose_name='СЕО Ключи', blank='true')

    class Meta:
        verbose_name = 'Проект'
        verbose_name_plural = 'Портфолио'

    def __str__(self):
        return self.title
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
DmitryVoronkov
@DmitryVoronkov
Python Developer
def show_project(request, slug):
    # Это список объектов, а не объект, вот и ошибка
    project_content = Project.objects.all()

# может так лучше:
    project = get_object_or_404(Project, slug=slug) 
    project_back = Project.objects.filter(id__gt=project.id).order_by('-id')[:1]
    return render(request, 'project_tpl.html', {'project':project, 'project_back':project_back, 'project_content':project_content})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы