Django. Как отфильтровать посты с датой меньше, чем текущий пост?

Я новичок в программировании. И я не понимаю методов. На странице поста detailview я хочу вывести список следующих постов (т.е. чье время меньше времени текущего поста). Как мне получить доступ к дате текущего поста? Я пытаюсь:

class PostDetailView(DetailView):
model = Post
slug_field = 'url'
context_object_name = 'post'

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['earlier_posts'] = Post.objects.filter(publication_date__lte=self.publication_date)
    return context

Затем у меня ошибка: объект 'PostDetailView' не имеет атрибута 'publication_date'

Заранее благодарю

Вы получаете эту ошибку, потому что self здесь ссылается на экземпляр PostDetailView, а не на экземпляр Post. Вы можете получить экземпляр модели, используя DetailView.get_object()

current_post = self.get_object()
context['earlier_posts'] = self.get_queryset().filter(publication_date__lte=current_post.publication_date)
Вернуться на верх