Джанго - Обновление с подзапросами - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь обновить некоторые «сводные модели» моих данных без использования цикла 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())


Мне кажется, что есть очень простое решение моей проблемы, но я просто продолжаю нажимать ошибку за ошибкой и не могу понять, как встать на правильный путь. Любой совет будет принята с благодарностью.

...