我需要一个帮助来获取django查询我的json文件应该将此数据作为输出。我尝试了很多方法,但我得到它的位而不是完全。我是Django的新手并长期坚持下去。请帮忙。谢谢:)
[{
"Group": "Mars",
"count": 10,
"Months": "June"
}, {
"Group": "Jupiter",
"count": 50,
"Months": "June"
}, {
"Group": "Mars",
"count": 70,
"Months": "July"
}, {
"Group": "Jupiter",
"count": 60,
"Months": "July"
}, {
"Group": "Mars",
"count": 30,
"Months": "August"
}, {
"Group": "Jupiter",
"count": 40,
"Months": "August"
}];
我可能试图在我的views.py中计算火星和木星的数量,如下所示,json为[{'Group':'Mars','count':10},{'Group':'Jupiter','count':50}]
,现在添加了几个月,这是我没有得到的,'月'是在charfield。
views.py
fm_ds=Details.objects.filter(Group='Jupiter',Div='Cross',Shift='Day').count()
m_ds=Details.objects.filter(Group='Mars',Div='Cross',Shift='Night').count()
Jupiter_dict={}
Jupiter_dict['Group']='Jupiter'
Jupiter_dict['count']=fm_ds
Mars_dict={}
Mars_dict['Group']='Mars'
Mars_dict['count']=m_ds
print Jupiter_dict
print Mars_dict
details_dict=[Mars_dict,Jupiter_dict]
context = {'data_json': json.dumps(details_dict)}
models.py是
class Details(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
Div=models.CharField(max_length=200,blank=True, null=True, default=None)
Group =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)
答案 0 :(得分:2)
您可以使用Details.objects.values('Group', 'months').annotate(count=Count('Group')).order_by('months')
函数执行此操作,例如,
<QuerySet [{'count': 5, 'months': 'December', 'Group': 'group1'},
{'count': 3, 'months': 'December', 'Group': 'group3'},
{'count': 10, 'months': 'June', 'Group': 'group1'},
{'count': 10, 'months': 'May', 'Group': 'group1'},
{'count': 6, 'months': 'May', 'Group': 'group3'}]>
输出将是,
Shift
计数是指特定月份的群组中的人数,无论他们是否工作{{1}}。
希望,这就是你要找的东西,