【发布时间】:2016-10-04 12:36:45
【问题描述】:
我有一个模型:
class Person(models.MyModel):
department = models.ForeignKey('Department')
start_date = models.DateField()
class Department(models.SomeModel):
name = models.CharField()
我希望在我的模板中能够创建一个简单的表格,我可以在其中按两个属性对人员进行分组:department__name 和 start_date。
这样,同一日期开始的部门名称相同的人员将显示在同一行中。
我知道有一个模板标签叫regroup,但是我只能给出三个参数,其中一个可以是grouper。
好吧,我想我可以在我的view.py 中使用类似这样的方式进行此查询:
Person.objects.all().group_by('start_date','department__name')
但我错了。没有这种方法。
有什么方法可以简单地实现这一点?
编辑 1
相同的属性是指类的对象。例如:
假设这是数据库:
姓名 |部门 |开始日期
鲍勃|销售 | 2012 年 12 月 12 日
萨拉|销售 | 2012 年 12 月 12 日
约翰 |金融 | 13-11-2012
那么下面的函数会是这样的:
功能:
Person.objects.all().group_by('department__name', 'start_date')
输出:
销售 | 2012 年 12 月 12 日 |鲍勃,萨拉
财务 | 13-11-2012 |约翰
这样,Sara 和 John 已按部门AND开始日期分组。
【问题讨论】:
-
“按两个属性对人进行分组”是什么意思?你能举一个期望输出的例子吗?
-
是的。我已经编辑了我的问题。我希望现在更好。