【问题标题】:How to extend Django User model with two different profiles?如何使用两个不同的配置文件扩展 Django 用户模型?
【发布时间】:2017-02-26 04:23:27
【问题描述】:

是否可以创建两个不同的配置文件并让它们都扩展 Django 用户模型。我正在尝试创建学生档案和教师档案,我该怎么做?我的学生资料具有所学课程等属性,但教师不应有权访问课程,只能创建它们。

【问题讨论】:

    标签: python django models


    【解决方案1】:

    您可以创建多个模型继承User模型。

    class Teacher(User):
        pass
    
    class Course(models.Model):
        teacher = models.ForeignKey(Teacher)
    
    class Student(User):
        courses = models.ManyToManyField(Course)
    

    【讨论】:

      【解决方案2】:

      您可以将 django 内置 User Models 类继承到任意数量的模型中。

      from django.contrib.auth.models User
      
      class Course(models.Model):
          name = models.CharField(-----)
      
      class Teacher(User):
          pass
      
      class Course(models.Model):
          teacher = models.ForeignKey(Teacher)
      
      class Student(User):
          courses = models.ManyToManyField(Course)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-14
        • 2012-03-11
        • 1970-01-01
        • 2019-05-12
        • 2017-06-18
        • 2012-07-22
        • 1970-01-01
        相关资源
        最近更新 更多