有没有可能在Django的函数中获得多个值的解决方案?

时间:2018-09-20 09:01:59

标签: django django-models

我正在使用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

但是它只返回一个值...谁能建议我一些合适的代码来解决这个问题...

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用以下查询获取类别标题和博客计数的元组列表:

categories.objects.annotate(blog_count=Count('Categories')).values_list('Title', 'blog_count')