截至目前,我已尝试使用
提取月份详细信息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)
实际上并不需要月份字段!
我怎样才能做到这一点?
答案 0 :(得分:2)
total_dict = MyModel.objects.annotate(month=TruncMonth('DOJ')).values('Gender', 'month').annotate(sum=Count('Gender'))
试试这个。
答案 1 :(得分:0)
total_dict = MyModel.objects.values('Gender', 'DOJ').annotate(Count('Gender')).order_by('DOJ', 'Months')
for each_dict in total_dict:
each_dict['value']=each_dict[0].Gender__count
print total_dict