Django 多个配置文件

Django multiple profiles

学生可以通过什么方式向特定教师提交作业(教授特定课程)...他们有什么关系??

models.py

class Student(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    avatar = models.ImageField(upload_to='media/pictures/', blank=True)
    regex = RegexValidator(r'^\d{2}/\d{4}',
                           message='Required. 7 characters or fewer. This value must contain only numeric and slash.')
    matric_no = models.CharField(validators=[regex], blank=True, null=True, max_length=7, unique=True)
    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$',
                                 message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
    phone_number = models.CharField(validators=[phone_regex], max_length=17, blank=True)  # validators should be a list
    address = models.CharField(max_length=150, blank=True)
    birth_date = models.DateField(null=True, blank=True)

    GENDER_CHOICES = (
            ('M', 'Male'),
            ('F', 'Female'),
        )


class Teacher(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    avatar = models.ImageField(upload_to='media/pictures/', blank=True)
    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$',
                                 message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
    phone_number = models.CharField(validators=[phone_regex], max_length=17, blank=True)  # validators should be a list
    address = models.CharField(max_length=150, blank=True)
    birth_date = models.DateField(null=True, blank=True)
    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=False, default='M',)

    def __str__(self):
        return str(self.user)

也许像用户消息传递或邮寄(用户对用户)之类的东西?

如果一个 Student 只能将给定的作业提交给一个 Teacher(即,不能提交给一组教师),您可以使用类似于以下的模型:

class Assignment(models.Model):
    student = models.ForeignKey(Student)
    teacher = models.ForeignKey(Teacher)
    ...other fields...

您还可以在 StudentTeacher 模型之间使用 ManyToMany 关系并创建您自己的 through table 但从语义上讲,上述方法可以使更多在这种情况下有意义。