Разделите блоги по годам в списке queryset
Я создаю приложение для блогов и пытаюсь разделить блоги по году их создания. например :-
2022
First Blog
Second Blog
2021
Third Blog
Fifth Blog
Это может быть в словаре списка, как :-
[
"2022": {
"title": "First Blog",
"title": "Second Blog",
},
"2021": {
"title": "Fifth Blog",
"title": "Second Blog",
}
]
models.py
class Blog(models.Model):
title = models.CharField(max_length=100, default='')
date = models.DateTimeField(auto_now_add=True)
views.py
def get_blogs(request):
blogs_by_year = Blog.objects.annotate(
year=TruncMonth('date')).annotate(
blogs=Count('title')).values("year", "blogs")
return blogs_by_year
Но он показывает отдельные результаты, например
<QuerySet [{'year': datetime.datetime(2023, 1, 1, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo(key='UTC')), 'blogs': 1}, {'year': datetime.datetime(2023, 1, 1, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo(key='UTC')), 'blogs': 1}]>
.
Но я пытаюсь разделить их по годам.
Нужно ли разделять блоги по годам с помощью for loop
, а затем фильтровать по годам и добавлять в список словаря?
Я прочитал страницу DateField truncation, но ничего не получилось.