Django/Python不可比类型Story() < Story()的故事(带有排序功能)

2024-05-23 15:35:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用Django Unchained TutsPlus课程从头开始学习Django,我已经达到了这样一个程度:创建top_nchainedtutsplus函数来对每个故事进行排序,每个故事从1点开始。在

我尝试了很多方法,比如把abs放在score函数的return函数上,但是这会导致一个负的分数变成正的,当每个故事都有相同的分数时,主要的问题就出现了,因为这样它通过我认为的故事进行排序?在

Python版本-3.3.3

Django版本-1.6.1

这是显示的错误

ERROR - unorderable types: Story() < Story()

视图.py-第16行是导致问题的原因,具有sorted on的行

^{pr2}$

我会非常感谢你的帮助,我已经试着修好它一段时间了


Tags: django方法函数版本排序topplusabs
1条回答
网友
1楼 · 发布于 2024-05-23 15:35:25

使用key函数给商店打分:

ranked_stories = sorted(latest_stories, key=score, reverse=True)
return ranked_stories[:top]

这就不需要使用decorate-sort-undecorate模式,而且还可以避免在没有排序支持的情况下比较单个Story实例。在

您可能应该在这里使用heapq,并避免对整个列表进行排序:

^{pr2}$

作为完整排序,heapq.nlargest()调用在计算上不太复杂;与consider相比,top越小,差异就越大。在

相关问题 更多 >