Django Update Query-Set mit Anmerkung

Ich möchte alle Zeilen im Abfragesatz mit einem kommentierten Wert aktualisieren.

Ich habe ein einfaches Modell:

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)

Und ich möchte diesen Code entfernen:

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

Und aktualisiere in eine SQL-Anfrage mit etwas wie diesem:

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

Funktioniert nicht:

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

ode

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

Auch funktioniert nicht:

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

Ist es möglich, Djangos ORM für diesen Zweck zu verwenden? Es gibt keine Informationen zur Verwendung vonaktualisieren( undkommentieren( zusammen in Dokumenten.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage