我的Django管理员为-
User Name City Number
John_Lincoln_roma_1.0 John_Lincoln_roma roma 1.0
Eddie_paul_roma_1.1 Eddie_paul_roma roma 1.1
Shin_roma_1.2 Shin_roma roma 1.2
Sinclair_madrid_1.0 Sinclair_madrid madrid 1.0
Jessie_madrid_1.1 Jessie_madrid madrid 1.1
我想应用查询,该查询应基于最大数1.2和1.1返回User
,并且应该给我的记录是Shin_roma_1.2和Jessie_madrid_1.1
下面是我尝试过的代码段-
some_object.values('name').annotate(number=Max('number')).order_by()
将结果作为-
result = [{'number': u'1.2', 'name': u'Shin_roma'}, {'number': u'1.1', 'name': u'Jessie_madrid'},
print type(result)
<class 'django.db.models.query.QuerySet'>
我想要一个基于过滤User
中的字典值的查询或过滤器,以返回result
。
基本上我想根据城市和城市Shin_roma_1.2和Jessie_madrid_1.1进行分组。因此它应该向我返回按城市顺序排列的最大用户数
我尝试了类似的操作,但没有得到结果(我知道这是错误的)-
result.filter(result__number="number",result__city="city")
遍历了stackoverflow,但没有找到解决方案。
请让我知道是否有任何不清楚的地方。我希望上面的内容很清楚。
谢谢!!
答案 0 :(得分:0)
我用的模特名字是'dummy' 赋予您相同的属性,我得到的结果就是您了。
obj=dummy.objects.values('user').order_by('-number','-name')[:2]
>>> obj
<QuerySet [{'user': 'Shin_roma_1.2'}, {'user': 'Jessie_madrid_1.1'}]>