Как я могу упорядочить по вычисляемому полевому комплексу в Django?

У меня есть такая модель:

class Program(models.Model):
    votes_sum = models.IntegerField(max_length=10, default=0)
    voters_counter = models.IntegerField(max_length=10, default=0)
    ...

Мне нужны 10 лучших программ, поэтому я пробовал в моих views.py:[1229 visiblebest_rated = Program.objects. filter (Q (creator__profile__type = 'us')). extra (select = {'total': 'sizes_sum / sizes_counter'}). extra (order_by = ['total']) [: 10]

Проблема в том, когда ни один пользователь не проголосовал, потому что происходит деление на ноль.

Я не мог найти другого способа решить эту проблему. Любая помощь? Пожалуйста.


У меня есть решение попроще, чем я думал. Просто исключите записи без голосов!

best_rated = Program.objects.filter (Q (creator__profile__type = 'us') & ~ Q (sizes_counter = 0)). Extra (select = {'total': 'voices_sum / sizes_counter'}). Extra (order_by = ['Всего'])[: 10]

6
задан Kevin Brown 20 December 2014 в 01:22
поделиться