如何在Django中执行联接和聚合计数 [英] How to perform a join and aggregate count in Django
本文介绍了如何在Django中执行联接和聚合计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个模型:
class Unit (models.Model):
Unit_name = models.CharField(max_length=30)
Hull_number = models.CharField(max_length=30)
Parent_unit = models.ForeignKey("self", blank=True, null=True)
Class = models.ForeignKey(Class)
email = models.CharField(max_length=50, default='')
Member = models.ManyToManyField(Member, through='MemberUnit')
def __str__(self):
return self.Unit_name
class MemberUnit(models.Model):
Member = models.ForeignKey(Member)
Unit = models.ForeignKey(Unit)
Position = models.ForeignKey(ClassPosition)
def __str__(self):
return self.Unit.Unit_name + " " +
self.Position.unit_position.Position_name + " ( " +
self.Member.first_name + " " + self.Member.last_name + " )"
我是Django的新手。查询是我所缺少的。
我需要的是Unit_name的总数。
I am new to Django (sort of). Querying is where I am lacking. What I need is a aggregate count of Unit_names.
为此,我需要在查询中提供一个Unit_Name及其数量作为查询的一部分。
在此方面的任何协助将不胜感激。
To that end, I require a query as part of my view to provide a Unit_Name and it's count. Any Assistance on this would be greatly appreciated.
谢谢
推荐答案
希望这会有所帮助:
from django.db.models import Count
MemberUnit.objects.values('Unit__Unit_name').annotate(c=Count('Unit'))
您可以在Django的shell:
You can try this in Django's shell:
manage.py shell
请参见文档
这篇关于如何在Django中执行联接和聚合计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文