因此,我在Django中有一个User
模型,可以扮演三个角色-老师,学生或两者兼而有之。
我有另一个模型,例如Course
,它只能只有一位老师,但是可以将多个学生映射到该模型。
如何将这些模型与另一个模型联系起来?
答案 0 :(得分:0)
给出伪代码:
class Course(models.Model):
name = models.CharField()
teacher = models.ForeignKey(User, related_name='teaching')
students = models.ManyToManyField(User, related_name='studying')
如果有一个User实例,则可以通过调用some_user.studying.all()
来检查它作为学生所拥有的所有课程。您是否要让同一位用户进行所有给定的讲座,只需致电some_user.teaching.all()
。
答案 1 :(得分:0)
尝试一下:
class Person(models.Model):
name = models.CharField(max_length=255)
class Meta:
abstract = True
class Teacher(Person):
salary = models.PositiveIntegerField()
class Student(Person):
roll_no = models.PositiveIntegerField()
class Course(models.Model):
std = models.ForeignKey(Student)
mentor = models.OneToOneField(Teacher)