您需要更改模型。
如果每个学生只能有一位老师,那么您需要以这种方式更改学生模型:
class Student(AbstractUser):
mobile_number = models.TextField()
teacher = models.ForeignKey("Teacher", on_delete=models.SET_NULL, null=True)
然后您可以像这样将老师分配给学生
teacher = Teacher.objects.get(pk=...) #get required teacher
要将这位老师分配给几个学生,您可以
Student.objects.filter(pk__in=[id_student1, id_student2, ...]).update(teacher=teacher)
如果您想分配任意数量的学生,那么在您“聘请”您需要做的老师的地方,找到所需数量的没有老师的学生,然后为他们分配老师。你可以这样做:
for student in Students.filter(teacher__isnull=True)[:6]:
student.teacher = teacher #where teacher is your hired teacher
student.save()
如果您的学生可以有多个老师,那么您需要使用多对多关系 (https://docs.djangoproject.com/en/3.0/topics/db/examples/many_to_many/)
class Student(AbstractUser):
mobile_number = models.TextField()
teacher = models.ManyToManyField("Teacher", related_name="students")
如果要将多个学生分配给一位老师,您可以:
student1 = Student.objects.get(pk=...)
student2 = Student.objects.get(pk=...)
...
teacher.students.set([student1, student2, ...]) # this will replace all students with selected
teacher.students.add([student1, student2, ...]) # this will add selected students to other students connected with this teacher