Conjunto de consultas de actualización de Django con anotación

Quiero actualizar todas las filas en el conjunto de consultas utilizando el valor anotado.

Tengo unos modelos simples:

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)

Y quiero evitar este código:

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

Y actualizar enuna solicitud SQL usando algo como esto:

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

No funciona

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

o

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

Tampoco funciona:

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

¿Es posible usar el ORM de Django para este propósito? No hay información sobre el usoactualizar() yanotar() juntos en docs.

Respuestas a la pregunta(6)

Su respuesta a la pregunta