I have 2 models connected with ForeignKey. For example:
class pidpr(models.Model):
pidpr = models.TextField()
suma_oplat = models.DecimalField(max_digits=10, decimal_places=3)
class obj(models.Model):
product = models.TextField()
pidpr = models.ForeignKey("pidpr", related_name="objs")
I need to summarize fields suma_oplat for every manager if product
field is equal to some value. For example:
It works without filtering second table:
pidpr.objects.values("manager").annotate(Sum("suma_oplat"))
Here is result:
[{'manager': 1, 'suma_oplat__sum': Decimal('700.000')}, {'manager': 2,
'suma_oplat__sum': Decimal('400.000')}]
When use filtering:
pidpr.objects.filter(objs__product="22").values("manager").annotate(Sum("suma_oplat"))
It gives result:
[{'manager': 1, 'suma_oplat__sum': Decimal('1200.000')}]
When we use filtering, we get 'suma_oplat__sum' bigger than without
filtering.
distinct() didn't help.
Now I use in loop such evaluation:
sum([i["suma_oplat"] for i in
pidpr.objects.filter(objs__product="22",manager=<some_value>).distinct().values("id",
"manager", "suma_oplat")])
Any proposals?
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.