Django Динамическое вычисление среднего значения

В моей модели несколько полей, и мне нужно вывести среднее значение только из тех столбцов, которые вводит пользователь. Может быть

Как я могу сделать это динамически?

Я знаю, что могу сделать

mean = results.aggregate(Avg("student_score"))

Это один, я хочу динамически добавить несколько утверждений Avg

Я также попробовал сделать цикл, чтобы получить все имена и добавить все поля, указанные пользователем, по одному

eg - Avg('students'), Avg('playtime'), Avg('grade'), Avg('sales')

Но я получаю

QuerySet.aggregate() received non-expression(s): <class 'django.db.models.aggregates.Avg'>('students'), <class 'django.db.models.aggregates.Avg'>('sales').

Я даже пробовал сырой запрос, но он требует уникальный ID, из-за чего он не работает. Есть идеи по обходному пути?

Я использую MySQL DB

Aggregate возвращает один результат из списка объектов. Если вам нужно получить несколько результатов, например,

, вам нужно сделать аннотацию.
YourModel.objects.values("YOUR GROUP BY VALUES HERE").annotate(Avg('students'), Avg('playtime'), Avg('grade'), Avg('sales')
Вернуться на верх