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...
您还可以在 Student
和 Teacher
模型之间使用 ManyToMany
关系并创建您自己的 through table 但从语义上讲,上述方法可以使更多在这种情况下有意义。
学生可以通过什么方式向特定教师提交作业(教授特定课程)...他们有什么关系??
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...
您还可以在 Student
和 Teacher
模型之间使用 ManyToMany
关系并创建您自己的 through table 但从语义上讲,上述方法可以使更多在这种情况下有意义。