【发布时间】:2014-02-27 10:25:43
【问题描述】:
我目前正在使用 Django Unchained TutsPlus 课程从头开始学习 Django,我已经创建了一个 top_stories 函数来对每个故事进行排序,每个故事从 1 分开始。
我尝试了很多东西,例如将 abs 放在 score 函数的 return 周围,但这会导致负分变为正分,当每个故事具有相同的分数时出现主要问题,因为然后它通过排序我认为的故事?
Python 版本 - 3.3.3
Django 版本 - 1.6.1
这是显示的错误
ERROR - unorderable types: Story() < Story()
views.py - 第 16 行导致问题,排序在的行
import datetime
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader, Context
from django.utils.timezone import utc
from stories.models import Story
def score(story, gravity=1.8, timebase=120):
points = (story.points - 1)**0.8
now = datetime.datetime.utcnow().replace(tzinfo=utc)
age = int((now - story.created_at).total_seconds())/60 # minutes since story was posted
return points/(age+timebase)**gravity
def top_stories(top=180, consider=1000):
latest_stories = Story.objects.all().order_by('-created_at')[:consider]
ranked_stories = sorted([(score(story), story) for story in latest_stories], reverse=True)
return [story for score, story in ranked_stories][:top]
def index(request):
stories = top_stories(top=10)
response = '''
<html>
<head>
<title>Tuts+ News</title>
</head>
<body>
<ol>
%s
</ol>
</body>
</html>
''' % '\n'.join(['<li>%s</li>' % story.title for story in stories])
return HttpResponse(response)
我将非常感谢您对此的任何帮助,我已经尝试修复它一段时间了
【问题讨论】:
标签: python django sorting typeerror