Django обновляет набор запросов с аннотацией

Я хочу обновить все строки в наборе запросов, используя аннотированное значение.

У меня есть простые модели:

class Relation(models.Model):
    rating = models.IntegerField(default=0)

class SignRelation(models.Model):
    relation = models.ForeignKey(Relation, related_name='sign_relations')
    rating = models.IntegerField(default=0)

И я хочу избежать этого кода:

for relation in Relation.objects.annotate(total_rating=Sum('sign_relations__rating')):
    relation.rating = relation.total_rating or 0
    relation.save()

И сделать обновление водин SQL-запрос используя что-то вроде этого:

Relation.objects.update(rating=Sum('sign_relations__rating'))

Не работает:

TypeError: int() argument must be a string or a number, not 'Sum'

или же

Relation.objects.annotate(total_rating=Sum('sign_relations__rating')).update(rating=F('total_rating'))

Также не работает:

DatabaseError: missing FROM-clause entry for table "relations_signrelation"
LINE 1: UPDATE "relations_relation" SET "rating" = SUM("relations_si...

Можно ли использовать ORM Джанго для этой цели? Нет информации об использованииОбновить() а такжеаннотирования () вместе в документах.

Ответы на вопрос(6)

Ваш ответ на вопрос