【发布时间】:2021-11-17 18:13:05
【问题描述】:
我正在构建一个博客应用程序,我创建了一个 queryset,这是自 blog date 以来的每一天的 showing blog date and likes,但它显示在 dictionary 中,我试图在表格中以不同方式显示这两个实例。
| Blog Date | Likes |
|---|---|
| 20 Sep. | 6 Likes |
| 21 Sep. | 2 Likes |
| 22 Sep. | 4 Likes |
但它显示为:-
({20: 6},{21: 2},{22: 4})
models.py
class BlogPost(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=30, default='')
date = models.DateTimeField(auto_now_add=True)
class Likes(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
blogpost_like = models.ForeignKey(BlogPost, on_delete=models.CASCADE)
views.py
from django.db.models.functions import ExtractDay
from collections import Counter
def page(request):
blogpost = get_object_or_404(BlogPost,pk=pk)
totals = blogpost.likes_set.filter(
blogpost_like__date=blogpost.date,
).annotate(
date=ExtractDay('blogpost__date'),
).values(
'date'
).annotate(
n=Count('pk')
).order_by('date').values()
results = Counter({d['date']: d['n'] for d in totals})
context = {'results':results}
return render(request, 'page.html', context)
我尝试了什么? :-
- 我试过了
lists = [{'id': blog.date, 'name': blog.n} for blog in results ]
但它只显示像24 这样的日期而不是喜欢的日期。
- 比我试过的
json.dumps(list(results ))
- 比我试过的
from calendar import monthrange
__, ds = monthrange(blogpost.date)
finalSecond = [data[i] for i in range(1, ds+1)]
但它显示了
monthrange() 缺少 1 个必需的位置参数:“月”
试了很多次还是不行。
任何帮助将不胜感激。谢谢你
【问题讨论】:
标签: python django django-views django-queryset