无法在 django 中找出正确的 json 查询集
Posted
技术标签:
【中文标题】无法在 django 中找出正确的 json 查询集【英文标题】:Cant figure out right queryset for json in django 【发布时间】:2017-12-29 22:51:45 【问题描述】:我需要帮助来获取 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]
现在添加了几个月,这是我没有得到的,而'months'在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)
【问题讨论】:
“计数”是特定月份特定组的总数? 是的,这是特定组中白天/夜班工作的人数! @ThiagoRossener 你能展示你的模型吗? @zaidfazil 我的模型已添加。 【参考方案1】:你可以用annotate
函数来做到这一点,比如,
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
无关。
希望,这就是你要找的,
【讨论】:
我也希望它们与 Shift 相关。就像在白班工作的“木星”小组一样。计数是 6 月份的 50 个,7 月份的 60 个和 8 月份的 40 个。你能帮我解决这个问题吗?! @zaidfazil 数据的打印方式应该与我的 json 出现的方式完全相同!六月的火星和木星。火星和木星 7 月份等等 您可以添加一个order_by
子句,为此。
谢谢:) 明白了!:)
您能帮我一个忙,然后将答案标记为选中吗?以上是关于无法在 django 中找出正确的 json 查询集的主要内容,如果未能解决你的问题,请参考以下文章