我正在使用Django创建博客应用程序,并且对Django也很陌生。
这是我创建的模型
class categories(models.Model):
Title = models.CharField(max_length=40, default='GST')
class Blog(models.Model):
User = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
Date = models.DateTimeField(default=datetime.now)
Blog_title = models.CharField(max_length=255)
likes = models.ManyToManyField(settings.AUTH_USER_MODEL,related_name='likes',blank=True)
Description = RichTextUploadingField(blank=True, null=True,config_name='special')
Blog_image = models.ImageField(upload_to='blog_image', null=True, blank=True)
Category = models.ForeignKey(categories,on_delete=models.CASCADE,related_name='blogs')
我想知道如何计算特定类别下的博客总数?
我想跟踪所有类别的特定计数率...
在我的模型中完成了类似的操作
def categories_count(self):
for a in categories.objects.all():
categories_count = Blog.objects.filter(Category__Title=a.Title).count()
return categories_count
但是它只返回一个值...谁能建议我一些合适的代码来解决这个问题...
谢谢
答案 0 :(得分:1)
您可以使用以下查询获取类别标题和博客计数的元组列表:
categories.objects.annotate(blog_count=Count('Categories')).values_list('Title', 'blog_count')