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.