无法在django中找出json的正确查询集

时间:2017-07-24 11:11:21

标签: python json django django-views django-queryset

我需要一个帮助来获取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)

1 个答案:

答案 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}}。

希望,这就是你要找的东西,

相关问题