Python Django——老师和学生的建议?
我是Django的新手,正在尝试建立师生关系的模式。教师和学生都可以访问任何给定课程的课程材料。教师在一门课程中将有许多学生,每个学生将有许多教师(取决于他们正在学习的课程数量)。我现在已经准备好了:我在正确的轨道上吗Python Django——老师和学生的建议?,python,django,models,Python,Django,Models,我是Django的新手,正在尝试建立师生关系的模式。教师和学生都可以访问任何给定课程的课程材料。教师在一门课程中将有许多学生,每个学生将有许多教师(取决于他们正在学习的课程数量)。我现在已经准备好了:我在正确的轨道上吗 class CourseWare(models.Model): #information goes here? instructor = models.ForeignKey(Instructor) TrainingManager = models.Fore
class CourseWare(models.Model):
#information goes here?
instructor = models.ForeignKey(Instructor)
TrainingManager = models.ForeignKey(TrainingManager)
class Instructor(models.Model):
firstName = models.CharField(max_length=30, blank=True, null=True)
lastName = models.CharField(max_length=30, blank=True, null=True)
material = models.ForeignKey(courseWare) #instructor deals with one course
def __unicode__(self):
return u's_' + self.firstName + u' ' + self.lastName
class Student(models.Model):
firstName = models.CharField(max_length=30, blank=True, null=True)
lastName = models.CharField(max_length=30, blank=True,null=True)
instructors = models.ManyToManyField(Instructor) #Many Instructors <-> Many Students?
material = models.ForeignKey(CourseWare)
terminationDate = models.DateField()
课堂课件(models.Model):
#这里有信息吗?
讲师=模型。外键(讲师)
培训经理=型号。外键(培训经理)
班主任(模型.模型):
firstName=models.CharField(最大长度=30,空白=True,空=True)
lastName=models.CharField(最大长度=30,空白=True,空=True)
材料=模型。外键(课件)#讲师处理一门课程
def ___; unicode(自):
返回u's_'+self.firstName+u'+self.lastName
班级学生(模型。模型):
firstName=models.CharField(最大长度=30,空白=True,空=True)
lastName=models.CharField(最大长度=30,空白=True,空=True)
教员=模型。许多教员(教员)#许多教员许多学生?
材料=模型。外键(课件)
terminationDate=models.DateField()
由于您的讲师只能教授一门课程,我会这样做:
class Course(models.Model):
instructor = models.OneToOneField(Instructor, related_name='course')
training_manager = models.ForeignKey(TrainingManager)
students = models.ManyToManyField(Course, related_name='courses')
class Instructor(models.Model):
first_name = models.CharField(max_length=30, blank=True, null=True)
last_name = models.CharField(max_length=30, blank=True, null=True)
class Student(models.Model):
first_name = models.CharField(max_length=30, blank=True, null=True)
last_name = models.CharField(max_length=30, blank=True, null=True)
termination_date = models.DateField()
related\u name
关键字参数允许您反向查询内容。例如,some_student.courses.all()working@MattBall我不知道那是件事。我一直在这里看到这样的问题;我真的不知道我的代码结构是否正确。@请问您的代码是否按照您的意愿运行?如果是,那么codereview可以帮助您改进它,并为您提供如何更好地处理它的建议(即更干净、更可读等)。如果您的代码没有按预期的方式运行,那么这就是正确的问题所在。但在后一种情况下,请解释为什么它对你不起作用。我有点困惑。你的学生模型在哪里?你的课程
型号在哪里?您的代码似乎与您的描述有很大的偏差。嗯,好的,这是有道理的。是否不需要创建与学生和讲师相关的属性?i、 e.讲师=模特。作为学生课堂的一部分,有多少个教练?