我想使用 Django 构建一个简单的热门问题列表。我有一个function https://web.archive.org/web/20150526231733/http://amix.dk/blog/post/19588评估“hotness”每个问题都基于一些论点。
函数看起来与此类似(完整功能在这里 https://web.archive.org/web/20150526231733/http://amix.dk/blog/post/19588)
def hot(ups, downs, date):
# Do something here..
return hotness
我的问题模型和投票模型(相关部分)
class Question(models.Model):
title = models.CharField(max_length=150)
body = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
class Vote(models.Model):
question = models.ForeignKey(Question, related_name='questions_votes')
delta = models.IntegerField(default=0)
现在delta attribute
是正的还是负的。热门函数接收赞成票数和反对票数以及问题的创建日期。
我已经尝试过类似的方法,但它不起作用。
questions = Question.objects.annotate(hotness=hot(question_votes.filter(delta, > 0),question_votes.filter(delta < 0), 'created_at')).order_by('hotness')
我收到的错误是:global name 'question_votes' is not defined
我理解这个错误,但我不知道这样做的正确方法。