I see now what you are asking...
I never do such calculations in views rather I create methods in models.py
to do so and call them in the template...
Like what you could do is...
class Student(models.Model):
name = models.CharField(max_length=200, null=True, blank=True)
classroom = models.ForeignKey(Classroom,
on_delete=models.DO_NOTHING, blank=True,
null=True)
def __str__(self):
return self.name
def get_total_fee(self):
return sum(student.school_fees for student in self.fee_set.all())
def get_total_paid_fee(self):
return sum(student.paid_fees for student in self.fee_set.all())
def get_remaining_fee(self):
total_fee = self.get_total_fee()
total_paid = self.get_total_paid_fee()
return float(total_fee - total_paid)
and in template you can call...
{{ student.get_remaining_fee }}
On Tuesday, September 8, 2020 at 1:35:56 PM UTC-4 [email protected] wrote:
> Thank you for your help @coolguy..but my real problem lies in writing the
> code for “fee_remaining”, can you help me with that also..thanks
>
>
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *coolguy
> *Sent: *Tuesday, September 8, 2020 7:45 PM
> *To: *Django users
> *Subject: *Re: Help me with the view please
>
>
>
> In your return line of code, you are referring to context variable but I
> don't see you assigned any value to this context variable in your code.
>
> Or if you want to send three variables i.e. "fees", "total_fees" and
> "fee_remaining"... you need to send them separately like
>
>
>
> return render(request, 'website/students.html', {"fees": fees,
> "total_fees": total_fees, "fee_remaining": fee_remaining })
>
>
>
> then use these variables on your students.html template.
>
>
>
> On Tuesday, September 8, 2020 at 12:21:21 PM UTC-4 [email protected]
> wrote:
>
> My Models
> class Student(models.Model):
> name = models.CharField(max_length=200, null=True, blank=True)
> classroom = models.ForeignKey(‘Classroom’,
> on_delete=models.DO_NOTHING,blank=True, null=True)
> class Classroom(models.Model):
> name = models.CharField(max_length=40,blank=True, null=True)
>
> class Fee(models.Model):
> student = models.ForeignKey(Student, on_delete=models.CASCADE, null=True,)
> classroom = models.ForeignKey(Classroom, on_delete=models.CASCADE,
> null=True)
> school_fees = models.FloatField(default=1000000)
> paid_fees = models.FloatField(null=False)
> remaining_fees = models.FloatField(blank=True)
> completed = models.BooleanField(null=False, default=False)
>
> views.py
> def student(request, pk):
> student = Student.objects.get(id=pk)
>
> fees = student.fee_set.all().order_by('-publish_date') total_fees =
> student.fee_set.all().filter(student__id=pk)
> .aggregate(sum=Sum('paid_fees', flat=True)['sum']
>
> fees_remaining = ()
>
> return render(request, 'website/students.html', context)
>
> --
> 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 view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/e026b778-bac8-4522-ad1f-2ea4b33ad1efn%40googlegroups.com
>
> <https://groups.google.com/d/msgid/django-users/e026b778-bac8-4522-ad1f-2ea4b33ad1efn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/bc5f52f8-4b46-40c5-8ff1-9d05e3095346n%40googlegroups.com.