Python 如何在django中为不同的三种不同型号制作跟随系统?

Python 如何在django中为不同的三种不同型号制作跟随系统?,python,django,Python,Django,我大约在一个月前开始学习Django,我正在尝试为三个模型添加一个如下系统:学生、教师和学校,但我有点卡住了 当用户B开始跟踪用户a时,我几乎不知道如何将用户a添加到用户B的跟随者列表中,因为用户可以来自上述三种模型中的任何一种 我如何解决这个问题,或者最好的解决方法是什么 以下是我的Django车型: 学生/模特.py 教师/模特.py 学校/models.py class Student(models.Model): user = models.OneToOneField(User,

我大约在一个月前开始学习Django,我正在尝试为三个模型添加一个如下系统:学生、教师和学校,但我有点卡住了

当用户B开始跟踪用户a时,我几乎不知道如何将用户a添加到用户B的跟随者列表中,因为用户可以来自上述三种模型中的任何一种

我如何解决这个问题,或者最好的解决方法是什么

以下是我的Django车型:

学生/模特.py

教师/模特.py

学校/models.py

class Student(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=30)
    father_name = models.CharField(max_length=30)
    mother_name = models.CharField(max_length=30)
    dob = models.DateField()
    address = models.TextField()
    contact = models.CharField(max_length=10)
    roll_no = models.IntegerField()
    about = models.TextField()
    following = models.ManyToManyField(User, related_name='student_following', blank=True)
    followers = models.ManyToManyField(User, related_name='student_followers', blank=True)
    class_name = models.ForeignKey(Classes, null=True, on_delete=models.SET_NULL)
    school_id = models.ForeignKey(School, on_delete=models.CASCADE)
class Teacher(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=30)
    dob = models.DateField()
    started_teaching = models.IntegerField()
    joining_date = models.DateTimeField()
    qualification = models.CharField(max_length=10)
    about = models.TextField()
    contact = models.CharField(max_length=10)
    following = models.ManyToManyField(User, related_name='teacher_following', blank=True)
    followers = models.ManyToManyField(User, related_name='teacher_followers', blank=True)
    school_id = models.ForeignKey(School, on_delete=models.CASCADE)
class School(models.Model):
    school_id = models.OneToOneField(User, on_delete=models.CASCADE)
    principal = models.CharField(max_length=50)
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=50)
    contact = models.CharField(max_length=10)
    following = models.ManyToManyField(User, related_name='school_following', blank=True)
    followers = models.ManyToManyField(User, related_name='school_followers', blank=True)