首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >姜戈加入。选择数据+选择计数

姜戈加入。选择数据+选择计数
EN

Stack Overflow用户
提问于 2014-11-23 19:10:00
回答 3查看 73关注 0票数 0

两种模式:

代码语言:javascript
运行
复制
class KeywordCategory(models.Model):
    class Meta():
        db_table = 'keywords_category'
    category_name = models.CharField(max_length = 100)
...
class Keyword(models.Model):
    class Meta():
        db_table = 'keywords'
    keyword_category = models.ForeignKey(KeywordCategory)
    keyword_text     = models.CharField(max_length = 100)

我需要得到所有的类别和在他们的条目计数。

SQL语法:

代码语言:javascript
运行
复制
SELECT keywords_category.*, COUNT(keywords.id) as count_keywords
FROM keywords_category
LEFT JOIN keywords ON keywords_category.id=keywords.keyword_category_id
GROUP by keywords_category.id
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-23 19:16:33

这将返回一个字典,键将是keyword_categorytotal

代码语言:javascript
运行
复制
from django.db.models import Count

kw_counts = Keyword.objects.all().values('keyword_category').annotate(
    total=Count('keyword_category')
)
票数 4
EN

Stack Overflow用户

发布于 2014-11-23 19:14:53

获取所有类别:

代码语言:javascript
运行
复制
categories = KeywordCategory.objects.all()

数一数其中的条目:

代码语言:javascript
运行
复制
for category in categories:
    category.keyword_set.count()
票数 0
EN

Stack Overflow用户

发布于 2014-11-23 19:16:31

代码语言:javascript
运行
复制
keywords = KeywordCategory.objects.all()

print [(k, k.keyword_set.count()) for k in keywords]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27093094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档