﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
25643	Allow update() with aggregates and joins via subqueries	jorgecarleitao	nobody	"Given the following models:

{{{
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)
}}}

support queries like

{{{
Relation.objects.update(rating=Sum('sign_relations__rating'))

Relation.objects.annotate(total_rating=Sum('sign_relations__rating')).update(rating=F('total_rating'))
}}}

to avoid queries like

{{{
for relation in Relation.objects.annotate(total_rating=Sum('sign_relations__rating')):
    relation.rating = relation.total_rating or 0
    relation.save()
}}}

This is useful to populate models that contain redundant data.

Based on [http://stackoverflow.com/questions/3652736/django-update-queryset-with-annotation this question] in SO.
"	New feature	new	Database layer (models, ORM)	dev	Normal			Marc Tamlyn Shai Berger Simon Charette	Accepted	0	0	0	0	0	0
