Получить среднее значение трех булевых полей

Я создаю простое приложение для блога и пытаюсь получить the average of three Boolean fields.

Пример :-

В модели есть три булевых поля с именами bool_1, bool_2 и bool_3 и два из них True, тогда покажите что-нибудь.

models.py

class BlogPost(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=30)
    bool_1 = models.BooleanField(default=False)
    bool_2 = models.BooleanField(default=False)
    bool_3 = models.BooleanField(default=False)

views.py

def page(request):

    queryset = BlogPost.object.filter(user=request.user)..aggregate(
                                        avr=Avg(F('bool_1') + F(
                                               'bool_2 ') + F('bool_3 '))).order_by('avr')

    context = {'queryset':queryset}
    return render(request, 'page.html', context)

Но он показывает

Оператор не существует: варьирование символов + варьирование символов LINE 1: SELECT AVG(((("app__blogpost". "bool_1" + "app__blogpost..

Что я пробовал :-

  • Я также пытался использовать Case и then такие методы, как :-
    queryset = BlogPost.objects.filter(
                                user=request.user).aggregate(
                                     boolean_value=Count(Case(When(bool_1=True, then=Value("Working")))))

но он показал {'boolean_value': 0}

Я пробовал много раз, но он все еще не работает.

Любая помощь будет очень признательна. Спасибо.

Вернуться на верх