Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用django创建学生信息网站的最佳方法_Django - Fatal编程技术网

使用django创建学生信息网站的最佳方法

使用django创建学生信息网站的最佳方法,django,Django,我想用django为学生创建一个网站 我有n个科目的学习计划 当我创建一个学生时我想选择一个现有的学习计划,并自动设置学习计划包含的所有科目,同时我想让每个学生的考试成绩不同 到目前为止我所做的: class Subject(models.Model): name = models.CharField(max_length=60) def __unicode__(self): return self.name class LearningPlan(models

我想用django为学生创建一个网站

我有n个科目的学习计划

当我创建一个学生时我想选择一个现有的学习计划,并自动设置学习计划包含的所有科目,同时我想让每个学生的考试成绩不同

到目前为止我所做的:

class Subject(models.Model):
    name = models.CharField(max_length=60)

    def __unicode__(self):
        return self.name

class LearningPlan(models.Model):
    name = models.CharField(max_length=60)
    subjects = models.ManyToManyField(Subject, through='Exam')

    def __unicode__(self):
        return self.name

class Student(models.Model):
    name = models.CharField(max_length=60)
    learning_plan = models.ForeignKey(LearningPlan)

    def __unicode__(self):
        return self.name


class Exam(models.Model):
    subject = models.ForeignKey(Subject)
    learning_plan = models.ForeignKey(LearningPlan)
    exam_grade = models.IntegerField()

我知道我想要什么,但我不知道怎么做。我想有一个关于主题的计划:主题1,主题2,主题3。。。当我添加一个新学生时,我选择一个计划,查看与该学生相关的年级中的所有科目,并且可以将考试成绩添加到每个科目(子科目1、科目2、科目3…),同一科目的成绩对于不同的学生是不同的。我不知道如何实现这一点。

如果你有一个学生,他(她)的科目是什么,请使用以下方法:

student.learning_plan.subjects.all()
考试成绩也很简单,但最好先添加
相关名称

class Exam(models.Model):
    subject = models.ForeignKey(Subject)
    learning_plan = models.ForeignKey(LearningPlan, related_name='exams')
    exam_grade = models.IntegerField()
现在您可以获得学生考试:

student.learning_plan.exams.all()
如果您想添加考试,它仍然很简单:

new_exam = Exam.objects.create(subject=some_subject, learning_plan=some_lp, exam_grade=98)
student.learning_plan.exams.add(new_exam)

如果我选择了一个学习计划,我希望每个学生都能从所选学习计划中选择所有科目,并有可能添加考试分数。听起来你需要添加一些视图、URL和模板。或者使用管理界面。你试过了吗?我试过管理员界面,但没有达到预期效果。我会再试一次。如果某人只说“效果不好”和“效果不理想”,你认为有可能帮助他吗?很抱歉,我的发言不清楚。我知道我想要什么,但我不知道怎么做。我想有一个关于主题的计划:主题1,主题2,主题3。。。当我添加一个新学生时,我选择一个计划,查看与该学生相关的年级中的所有科目,并且可以将考试成绩添加到每个科目(子科目1、科目2、科目3…),同一科目的成绩对于不同的学生是不同的。我不知道如何实现这一点。