This is how I finally solved my problem!!!
The following is a copy of my ORM statement:
Visit.objects.filter(visit_date = mydate).aggregate(total =
Sum('visit_payment'))
{'total': Decimal('27')}
This total is the total of the foreign key ids. 9 records each with a
key of 3 = 9 x 3 = 27
The way I solved this problem is to put another variable in the loop
where I was printing the records to Reportlab PDF file and I incremented
this variable with the value that was being printed. What was being
printed was the value from the look-up table so I was able to get a Sum
from that.
Here is the code of how I did it: vi = Visit.objects.filter(visit_date =
mydate); vip = 0; for v in vi:; vi_pay = str(v.visit_payment); vip +=
int(vi_pay)
Here is how the Reportlab is built: Also in the same loop as above I
have the lines: vi_pat = str(v.patient); pa1.drawString(x, y,
str(vi_pat)); pa1.drawString(x + 175, y, str(vi_pay))
Each of these are on a separate line in my code.
Hopefully this will help anyone with similar problems.
On Monday, 06 August, 2018 09:35 PM, Matthew Pava wrote:
You need to specify the field of the value in your ORM statement. I
don’t know what your field name is, but this assumes that it is “value”:
aggregate(Sum(‘payment__value’))
*From:*[email protected]
[mailto:[email protected]] *On Behalf Of *Gerald Brown
*Sent:* Monday, August 6, 2018 8:29 AM
*To:* Django users
*Subject:* Django ORM aggregate Sum function on foreign key
Greetings:
I am having a problem using the above function.
In my table I have a field payment that is a foreign key to a payment
table.
When I try to use aggregate(sum('payment')) it gives me the sum of the
foreign key, not the value from the payment table.
Currently I have 9 records in my test DB each one has a foreign key of
3 so I get a sum of 27 not 2,250 that I should be getting.
This table also has a foreign key to the customer table and it returns
the customer not the foreign key number.
The thought I had was to make that foreign key an integer field and
then the user would have to enter a number instead of selecting it
from a list, prone to operator errors,
Any ideas on how I can get the correct totals using ORM.
Thanks
--
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]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[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/c47e4bb7-626c-4b07-9ab5-55d68fe4d566%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/c47e4bb7-626c-4b07-9ab5-55d68fe4d566%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[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/3a17d4eeeb804cc89c4cda5eaca8b050%40ISS1.ISS.LOCAL
<https://groups.google.com/d/msgid/django-users/3a17d4eeeb804cc89c4cda5eaca8b050%40ISS1.ISS.LOCAL?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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/03e77e95-26b7-01e9-e11b-beca97d16176%40gmail.com.
For more options, visit https://groups.google.com/d/optout.