Django Verion: 1.11.1
My models
class Cluster(models.Model):
....
volume_limit = models.IntegerField('Cluster Volume Count Limit')
volume_count = models.IntegerField('Cluster Volume Count', default=0)
....
class Node(models.Model):
cluster = models.ForeignKey(Cluster, related_name='cluster_nodes',
on_delete=models.PROTECT)
volume_limit = models.IntegerField('Node Volume Count Limit')
volume_count = models.IntegerField('Node Volume Count', default=0)
My query
nodes = Node.objects.filter(....)
intermediatestep =
nodes.objects.annotate(volume_left=F('volume_limit')-F('volume_count')).values('cluster__id').annotate(cluster_volume_left_sum=
Sum('volume_left'))
Error:
File
"/Users/sarvi/virtenv/toothless/lib/python2.7/site-packages/django/db/models/expressions.py",
line 471, in resolve_expression
return query.resolve_ref(self.name, allow_joins, reuse, summarize)
File
"/Users/sarvi/virtenv/toothless/lib/python2.7/site-packages/django/db/models/sql/query.py",
line 1481, in resolve_ref
return Ref(name, self.annotation_select[name])
KeyError: 'volume_left'
My ultimate Goal:
What I am trying to achieve is to get from a
1. filtered query of Nodes, to calculate
volume_left=F('volume_limit')-F('volume_count') for each node
2. then group by cluster and sum up what volume_left in each node to
cluster_volume_left_sum for each cluster.
3. Then get a cluster level
cluster_volume_left=F('volume_limit')-F('volume_count'),
4. Then calculate at the cluster level Min(0,
F('cluster_volume_left')-F('volume_left__sum'))
I am obviously stuck way earlier :-)
>From what I read of the documentation and Stackoverflow this should be
possible
Any pointer on what I am doing wrong here would be of great help.
Thanks,
Sarvi
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/d7442967-3c20-4fd9-9996-0fdcd24a8513%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.