title: Best way to create students information site with django
body: <p>I want to create a website for students with django.</p>
  
  <p>I have <strong>learning_plan</strong> with n <strong>subjects</strong></p>
  
  <p>When I create a <strong>student</strong> I want to choose an existing learning_plan and have automatic all the subjects that the learning_plan has, also I want to have <strong>exam_grades</strong> different for each student.</p>
  
  <p>What I've done so far:</p>
  
  <pre><code>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()
  </code></pre>
  
  <p>I know what I want I do not know how to do it. I want to have a plan with Subjects: Subject1, Subject2, Subject3 ... and when I add a new student I select a plan and see all the subjects from the grade associated to the student and to can add exam_grade to each of the Subjects (Subeject1, Subject2, Subject3 ...) and the grades for the same subject to be different for different students. I do not know how to implement this.</p>