1.即使有多個使用者型別,也儘量用一個model來進行登入驗證.
比如有teacher和student兩個使用者型別,建模的時候,用於登入驗證的model應該用同一個User模型,可以新增is_teacher和is_student欄位來區分使用者型別.
class User(AbstractUser):
is_student = models.BooleanField(default=False)
is_teacher = models.BooleanField(default=False)
如果使用者還有其他屬性,可以使用一對一關係來記錄
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
quizzes = models.ManyToManyField(Quiz, through="TakenQuiz")
interests = models.ManyToManyField(Subject, related_name="interested_students")
2.不要直接使用django內建的USER模型,即使它完全符合你的需求
你可以擴充套件內建的AbstractUser模型然後在settings中設定AUTH_USER_MODEL的值
AUTH_USER_MODEL = "classroom.User"
1.即使有多個使用者型別,也儘量用一個model來進行登入驗證.
比如有teacher和student兩個使用者型別,建模的時候,用於登入驗證的model應該用同一個User模型,可以新增is_teacher和is_student欄位來區分使用者型別.
class User(AbstractUser):
is_student = models.BooleanField(default=False)
is_teacher = models.BooleanField(default=False)
如果使用者還有其他屬性,可以使用一對一關係來記錄
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
quizzes = models.ManyToManyField(Quiz, through="TakenQuiz")
interests = models.ManyToManyField(Subject, related_name="interested_students")
2.不要直接使用django內建的USER模型,即使它完全符合你的需求
你可以擴充套件內建的AbstractUser模型然後在settings中設定AUTH_USER_MODEL的值
AUTH_USER_MODEL = "classroom.User"