Django最大外键集数

时间:2019-07-30 12:47:24

标签: django orm

class Blog(models.Model):
    pass

class Article(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)

b = Blog.objects.filter(...)

给出b,是否可以通过单个查询找到相关文章的最高数量?

我可以通过以下方式做到这一点:

max_count = 0
for blog in b:
    if b.article_set.count() > max_count:
        max_count = b.article_set.count()

是否有使用ORM / SQL的更有效方法?

1 个答案:

答案 0 :(得分:1)

您可以汇总,例如:

numpy_values = tuple(int(numpy.clip(channel + (intensity * factor), 0, 255)) for channel, factor in zip(pixel_color, factors))

这将生成如下查询:

from django.db.models import Count, Max

max_count = Blog.objects.annotate(
    narticle=Count('article')
).aggregate(
    max_count=Max('narticle')
)['max_count']