我创建列表的代码是:
choices = []
for bet in Bet.objects.all():
#...
#Here is code that skip loop if bet.choice exist in choices[]
#...
temp = {
'choice':bet.choice,
'amount':bet.sum,
'count':bets.filter(choice=bet.choice).count()}
choices.append(temp)
choices.sort(key=attrgetter('choice'), reverse=True)
choices.sort(key=attrgetter('amount'), reverse=True)
choices.sort(key=attrgetter('count'), reverse=True)
我必须按列表排序,因为模型 orderby() 无法按 count() 排序,可以吗?
你的字典里没有choice
, amount
or count
属性。那些是keys,所以你需要使用itemgetter()
对象代替。
from operator import itemgetter
choices.sort(key=itemgetter('choice'), reverse=True)
choices.sort(key=itemgetter('amount'), reverse=True)
choices.sort(key=itemhetter('count'), reverse=True)
如果要按多个条件排序,只需排序一次,条件按顺序命名:
choices.sort(key=itemgetter('count', 'amount', 'choice'), reverse=True)
您可能想要拥有database但是,进行排序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)