Hello Derek, Your solution worked, I appreciated the help.
Regards. On Wednesday, April 20, 2022 at 5:50:25 PM UTC+3 Derek wrote: > Not sure what the "@aproperty" are here for, but in your views.py file, > you could do this calculation, passing in the ID of the staff record: > > from .models import Staff, LeaveReportStaff > > def get_leave_balance(staff_id): > total_leave_days = Staff.objects.get(pk=staff_id) > leave_reports = LeaveReportStaff.objects.filter(staff=staff_id) > total_leave_reports = 0 > for leave in leave_reports: > total_leave_reports = total_leave_reports + (leave.end_date - > leave.start_date).days > return total_leave_days - total_leave_reports # leave balance > > > On Tuesday, 19 April 2022 at 17:34:33 UTC+2 techg...@gmail.com wrote: > >> Hello, >> >> I have a model Staff and LeaveReportStaff, I wanted to get leave_balance >> between Total_Leave_Days and leave_days. >> >> Please advise the best way forward. >> >> class Staff(models.Model): >> Total_Leave_Days = models.PositiveIntegerField(default=0) >> course = models.ForeignKey(Course, on_delete=models.DO_NOTHING, >> null=True, blank=False) >> admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE) >> >> class LeaveReportStaff(models.Model): >> staff = models.ForeignKey(Staff, on_delete=models.CASCADE) >> start_date = models.DateField() >> end_date = models.DateField() >> leave_type = models.CharField(choices=LEAVE_TYPE, max_length=25, >> null=True, blank=False) >> >> @property >> def leave_days(self): >> return (self.end_date - self.start_date).days >> >> @property >> def leave_balance(self): >> return (self.Total_Leave_Days - self.leave_days) >> >> -- 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 django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7e2f6c5d-d387-4177-bfdc-f4b55e26b863n%40googlegroups.com.