Я хочу создать простой список горячих вопросов, используя Django. У меня есть функция которая оценивает " горячность" каждого вопроса, основываясь на некоторых аргументах.
Функция выглядит примерно так (полная функция здесь)
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
Я понимаю ошибку, но я не делаю этого правильно.