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 django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to