【发布时间】:2019-02-28 05:19:10
【问题描述】:
我正在尝试获取具有特定字段值的所有相关模型的计数。
这是一些代码...
models.py:
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
BAD = "BAD"
MEH = "MEH"
GOOD = "GOOD"
GREAT = "GREAT"
REVIEW_CHOICES = (
(BAD, BAD.title()),
(MEH, MEH.title()),
(GOOD, GOOD.title()),
(GREAT, GREAT.title()),
)
title = models.CharField(max_length=100)
review = models.CharField(max_length=100, choices=REVIEW_CHOICES)
author = models.ForeignKey(Author, related_name="books")
假设我想列出每个作者的每种评论的数量。
我试过了:
Authors.object.annotate(n_good_books=Count("books")).filter(books__review="GOOD").values("name", "n_good_books")
我也试过了:
Authors.object.annotate(n_good_books=Count("books", filter=Q(books_review="GOOD"))).values("name", "n_good_books")
但这些都不起作用。
有什么建议吗?
【问题讨论】:
-
你用的是什么 Django 版本?
-
@WillemVanOnsem - 1.11