到目前为止,我已经尝试使用

total_dict = MyModel.objects.values('Gender', 'DOJ').annotate(count=Count('Gender')).order_by('DOJ', 'Months')
for d in total_dict:
    d['DOJ'] = str(d['DOJ'].month)
print total_dict


输出为:

[{'DOJ': '1', 'Gender': u'Male', 'value': 1}, {'DOJ': '1', 'Gender': u'Male', 'value': 1}, {'DOJ': '1', 'Gender': u'Female', 'value': 1}]


我想要的是将具有相同性别的条目的值加在一起,例如代替{'DOJ': '1', 'Gender': u'Male', 'value': 1}, {'DOJ': '1', 'Gender': u'Male', 'value': 1},应该只有一个条目{'DOJ': '1', 'Gender': u'Male', 'value': 2}

我的model.py是

class MyModel(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
Dept=models.CharField(max_length=200,blank=True, null=True, default=None)
Gender =models.CharField(max_length=200,blank=True, null=True, default=None)
Shift =models.CharField(max_length=200,blank=True, null=True, default=None)
Months=models.CharField(max_length=200,blank=True, null=True, default=None)
DOJ=models.DateField(null=True)


实际上并不需要几个月的字段!

我该如何实现?

最佳答案

total_dict = MyModel.objects.annotate(month=TruncMonth('DOJ')).values('Gender', 'month').annotate(sum=Count('Gender'))


尝试这个。

关于python - 获取在django ORM中分组的月份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45351322/

10-12 17:42