У меня есть модель Учителя:
class Teacher(models.Model):
"""
The Teacher model.
"""
INITIALS = (
("MR", "Mr."),
("MRS", "Mrs."),
("MS", "Ms."),
)
initials = models.CharField(
max_length=10,
choices=INITIALS,
default="MR"
)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def __str__(self):
return self.first_name+" "+self.last_name
# Control model features
class Meta:
verbose_name = 'Teacher'
verbose_name_plural = 'Teachers'
Затем модель класса, которая указывает на Учителя (Учитель является учителем класса этого класса):
class Class(models.Model):
class_name = models.CharField(
max_length=10,
default=None
)
division_name = models.CharField(
max_length=10,
default=None
)
class_teacher = models.ForeignKey(
Teacher, on_delete=models.SET_NULL, default=None, null=True, blank=True)
def __str__(self):
return self.class_name+" "+self.division_name
# Control model features
class Meta:
verbose_name = 'Class'
verbose_name_plural = 'Classes'
Тогда у меня есть Модель ученика:
class Student(User):
religion = models.ForeignKey(
Religion, on_delete=models.SET_NULL, null=True)
caste = models.ForeignKey(Caste, on_delete=models.SET_NULL, null=True)
date_of_birth = models.DateField(default=timezone.now)
parent_name = models.CharField(max_length=255, default=None)
address = models.CharField(max_length=255, default=None)
phone_number1 = models.CharField(
"Phone Number 1", max_length=10)
phone_number2 = models.CharField(
"Phone Number 2 (optional)", max_length=10, blank=True)
def __str__(self):
return self.first_name+" "+self.last_name
# Control model features
class Meta:
verbose_name = 'Student'
verbose_name_plural = 'Students'
И еще есть модель приема, которая указывает и ученику, и учителю:
class Admission(models.Model):
admission_date = models.DateField()
class_teacher = models.ForeignKey(
Teacher, on_delete=models.SET_NULL, null=True)
student = models.ForeignKey(
Student, on_delete=models.SET_NULL, null=True)
institute = models.ForeignKey(
Institute, on_delete=models.SET_NULL, null=True)
def __str__(self):
return str(self.admission_date.year)+" "+self.student.first_name+" "+self.student.last_name
Теперь, основываясь на Учителя, указанного в зачислении, я хочу показать Класс, который преподает учитель в разделе «Студент» в разделе администратора. Это значит, что я должен знать, в каком классе учится студент. Как мне этого добиться?