Django - Попытка упорядочить get_object_or_404 по последней версии
У меня есть коллекция записей блога с определенной категорией для каждой. На странице одной категории отображаются все посты в указанной категории, но я хотел бы, чтобы они сортировались по дате написания.
Вот что у меня есть:
def single_category(request, slug):
category = get_object_or_404(Category, slug=slug)
categories = Category.objects.all()
context = {
'category': category,
'categories': categories
}
return render(request, 'Blog/single-category.html', context)
Это не работает, но вот что я хочу:
def single_category(request, slug):
category = get_object_or_404(Category.objects.order_by('-written_on'), slug=slug)
categories = Category.objects.all()
context = {
'category': category,
'categories': categories
}
return render(request, 'Blog/single-category.html', context)
Вы можете получить связанные Post
и упорядочить их в порядке убывания written_on
:
def single_category(request, slug):
category = get_object_or_404(Category, slug=slug)
posts = Post.objects.filter(post_category=category).order_by('-written_on')
categories = Category.objects.all()
context = {
'category': category,
'categories': categories,
'posts': posts
}
return render(request, 'Blog/single-category.html', context)
В шаблоне вы перечисляете posts
, вместо category.post
:
{% for post in posts %}
…
{% endfor %}