我需要让我们说教师,学生等等。 两组都是用户,可以登录等。 但是,例如,教师需要与模型主题有多对多的关系。 如何实现?
答案 0 :(得分:1)
创建一个将继承自Users的类教师。在这个类中提供了多对多关系。您还可以使用配置文件模块来识别分离。
答案 1 :(得分:1)
我不会在这里使用继承者。只需创建指向用户的模型:
class Instructor(models.Model):
user = models.OneToOneField(User)
# other fields
subjects = models.ManyToManyField('Subject')
class Student(models.Model):
# other fields
user = models.OneToOneField(User)
class Subject(models.Model):
name = models.CharField(max_length=40)
这有利于将通用用户功能与教师和学生功能分开。实际上没有理由将教师或学生视为用户。
答案 2 :(得分:0)
您不能将Subject指向User-who-is-Instructor模型,它不能在SQL中表达。
你可以做的是例如指向用户模型的主题,在您的代码中确保您只为作为教师组成员的用户创建主题实例。