【发布时间】:2015-08-05 15:09:45
【问题描述】:
我想使用 Django 构建一个简单的热点问题列表。我有一个function,它根据一些论点评估每个问题的“hotness”。
功能与此类似 (full function here)
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
我理解错误,但我没有这样做的正确方法。
【问题讨论】:
标签: python django django-queryset