Python Django——老师和学生的建议?

Python Django——老师和学生的建议?,python,django,models,Python,Django,Models,我是Django的新手,正在尝试建立师生关系的模式。教师和学生都可以访问任何给定课程的课程材料。教师在一门课程中将有许多学生,每个学生将有许多教师(取决于他们正在学习的课程数量)。我现在已经准备好了:我在正确的轨道上吗 class CourseWare(models.Model): #information goes here? instructor = models.ForeignKey(Instructor) TrainingManager = models.Fore

我是Django的新手,正在尝试建立师生关系的模式。教师和学生都可以访问任何给定课程的课程材料。教师在一门课程中将有许多学生,每个学生将有许多教师(取决于他们正在学习的课程数量)。我现在已经准备好了:我在正确的轨道上吗

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.讲师=模特。作为学生课堂的一部分,有多少个教练?