考虑到以下模型:
from django.db import models
from wagtail.core.models import Page
from wagtail.snippets.models import register_snippet
from modelcluster.fields import ParentalManyToManyField
@register_snippet
class BlogCategory(models.Model):
name = models.CharField(max_length=255)
...
class BlogPost(Page):
author = models.CharField(max_length=255)
category = ParentalManyToManyField('blog.BlogCategory', blank=True)
...
使用Django ORM
,如何实现与以下SQL Join
相同的输出:
SELECT bc.name, count(bp.id) posts
FROM BlogCategory bc LEFT JOIN BlogPost bp
ON bc.id=bp.category
GROUP BY bc.id;
name | posts
------+-------
cat3 | 0
cat2 | 2
cat1 | 1
(3 rows)
我只是想得到一个类别列表,每个类别中有多少个帖子。你知道吗
您可以通过以下方式完成此操作:
这将导致一个
QuerySet
包含BlogCategory
,其中每个BlogCategory
都有一个额外的属性:posts
,该属性包含类别的帖子数。你知道吗或者如果你只对
QuerySet
的字典感兴趣:这将导致
QuerySet
类似于:相关问题 更多 >
编程相关推荐