Как вывести записи об оплате обучения студентов на шаблон в django
У меня есть несколько моделей для оплаты студенческих взносов, и я хотел бы вывести следующее на основе этих моделей:
Классы, Количество учеников в каждом классе, Сумма к оплате в каждом классе, & Общая сумма, выплаченная в каждом классе
Мои модели приведены ниже: для настройки класса
class ClassArmSetup(models.Model):
SECTION = (
('Primary', 'Primary'),
('Secondary', 'Secondary'),
('Creche', 'Creche'),
('Nursery', 'Nursery'),
)
id = models.AutoField(primary_key='True')
name = models.CharField(max_length=255, unique=True)
short_name = models.CharField(
'Classroom Short Form',
max_length=20, blank=True
)
academic_year = models.ForeignKey(AcademicYear, on_delete=models.CASCADE, null=True)
term = models.ForeignKey(TermSetup, on_delete=models.CASCADE, null=True)
created_at = models.DateTimeField(auto_now_add=True, null=True)
updated_at = models.DateTimeField(auto_now=True, null=True)
objects = models.Manager()
def classroom_code(self):
if not self.code:
return ""
return self.code
class StudentClassRegistration(models.Model):
STATUS = [
('Active', 'Active'),
('Withdrawn', 'Withdrawn'),
('Completed', 'Completed'),
]
chosen_class = models.ForeignKey(
ClassArmSetup, related_name='admission_students',
on_delete=models.CASCADE,
blank=True, null=True
)
admitted = models.BooleanField(default=False)
admission_date = models.DateField(blank=True, null=True)
migration_status = models.CharField(
max_length=255,
blank=True, null=True, default='Active'
)
status = models.TextField(choices=STATUS, verbose_name='Status', null=True)
rejected = models.BooleanField(default=False)
assigned_as_student = models.BooleanField(default=False)
academic_year =models.ForeignKey(AcademicYear, on_delete=models.CASCADE, null=True, verbose_name='Session')
term =models.ForeignKey(TermSetup, on_delete=models.CASCADE, null=True, verbose_name='Term')
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return str(self.lastname) + ' ' + str(self.firstname) + ' ' + str(self.othername)
class Meta:
ordering = ['chosen_class']
class TuitionFeesSetup(models.Model):
year= models.ForeignKey(AcademicYear, on_delete=models.CASCADE, null=True, verbose_name="Session")
term= models.ForeignKey(TermSetup, on_delete=models.CASCADE, null=True, verbose_name="Term")
classroom= models.ForeignKey(ClassArmSetup, on_delete=models.CASCADE, null=True, verbose_name="Class", related_name='class_fee_setup')
amount=models.IntegerField(null=True, verbose_name="Tuition Fees Amount(N)")
created = models.DateTimeField(auto_now_add=True, null=True)
updated = models.DateTimeField(auto_now=True, null=True)
objects = models.Manager()
class Meta:
verbose_name = ('Fees Setup Payment')
verbose_name_plural = ('Fees Setup')
def __str__(self):
return str(self.amount)
class TuitionFeesPayment(models.Model):
PAYMENT_METHOD = (
('Cash', 'Cash'),
('Bank', 'Bank'),
('Cheque', 'Cheque'),
('Scholarship', 'Scholarship'),
('Discount', 'Discount'),
('Bad Debt', 'Bad Debt')
)
year= models.ForeignKey(AcademicYear, on_delete=models.CASCADE, null=True, verbose_name="Session")
term= models.ForeignKey(TermSetup, on_delete=models.CASCADE, null=True, verbose_name="Term")
classroom= models.ForeignKey(ClassArmSetup, on_delete=models.CASCADE, null=True, verbose_name="Class", related_name='class_pay')
student= models.ForeignKey(StudentClassRegistration, on_delete=models.CASCADE, null=True, verbose_name="Student", related_name='student_pay')
class_fee= models.ForeignKey(TuitionFeesSetup, on_delete=models.CASCADE, null=True, verbose_name="Tuition Fee")
amount_paid=models.IntegerField(verbose_name="Amount(N) Paid", null=True, blank=True)
payment_method=models.CharField(choices=PAYMENT_METHOD, blank=True, max_length=50, verbose_name="Payment Method")
receipt_reference=models.CharField(max_length=255, null=True, verbose_name="Receipt Reference", editable=False, unique=True, default= random_string)
payment_date = models.DateField(null=True, default="2022-04-08")
created = models.DateTimeField(auto_now_add=True, null=True)
updated = models.DateTimeField(auto_now=True, null=True)
objects = models.Manager()
class Meta:
verbose_name = ('Fees Setup Payment')
verbose_name_plural = ('Fees Setup Payments')
Что я хочу сделать, так это вывести информацию следующим образом в шаблоне:
Каждый класс
Количество учащихся в каждом классе
Тарифы, установленные для каждого класса
Общая сумма, ожидаемая от каждого класса
Общая сумма, полученная от каждого класса
Заранее спасибо