Я пытаюсь обновить некоторые «сводные модели» моих данных без использования цикла for. В этих сводках много имен полей, совпадающих с данными, поэтому я считаю, что должен быть простой способ сделать что-то вроде Summary.objects.all().update(**Subquery(Data.objects.filter(my_key=OuterRef('my_key')).aggregate(my_value_1=Sum('my_value_1'), my_value_2=Sum('my_value_2'))
или что-то подобное и обновить значения в Сводке.
Однако не все так просто. Для начала я получаю следующую ошибку: ValueError: This queryset contains a reference to an outer query and may only be used in a subquery.
Это, кажется, происходит из-за части aggregate
, поскольку удаление агрегата исправляет эту ошибку ... но мне нужна сумма! И, конечно, есть другая ошибка для **Subquery()
, и еще одна ошибка для .update(Subquery())
Мне кажется, что есть очень простое решение моей проблемы, но я просто продолжаю нажимать ошибку за ошибкой и не могу понять, как встать на правильный путь. Любой совет будет принята с благодарностью.