Получить среднее значение трех булевых полей
Я создаю простое приложение для блога и пытаюсь получить 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}
Я пробовал много раз, но он все еще не работает.
Любая помощь будет очень признательна. Спасибо.