title: Copy or clone an object instance in Django/Python
body: <p>I've following scenario:</p>
  
  <pre><code>class CourseTemplate(models.Model):
      title = models.CharField(max_length=70)
      teacher = models.ForeignKey(User)
      description = models.TextField()
  
      max_students = models.IntegerField()
      sessions = models.ManyToManyField(CourseSession) # e.g. Session 1 Introduction, Session 2 Basics, etc.
      rating = models.ManyToManyFields(StudentRating)
      date_added = models.DateTimeField()
  
  class CourseEnrollment(models.Model):
      course = models.OneToOneField(CourseTemplate) # Each enrollment needs a new CourseTemplate Instance, so I can track it
      students = models.ManyToManyField(User)
  
  Class CourseSession(models.Model):
      title = models.CharField(max_length=50)
      date = models.DateTimeField()
      details = models.CharField(max_length=100)
      address = models.TextField()
      #parent_course = models.ForeignKey(CourseTemplate)
  
  class StudentRating(models.Model):
      student = models.ForeignKey(User)
      rating = models.IntegerField()
      #course = models.ForeignKey(CourseTemplate)
  </code></pre>
  
  <p>Now a teacher (=User) can create a CourseTemplate with all the required details first. After it's saved, he can create a concrete "enrollment" for e.g. this semester with 5 sessions. Maybe he changes after 8 enrollments some details (e.g. CourseTemplate.description or the course now only has 7 sessions instead of 8).</p>
  
  <p>I'd like to have a 1:1 relationship between each CourseTemplate instance and each CourseEnrollment, so I can see for example:
  - Teacher X had 2012 three CourseEnrollments, two of them were the same or 
  - which rating has he received for his second course.</p>
  
  <p>The presented "Template" should always be the "newest", so I'd just need to get the latest instance by CourseTemplate.date_added.</p>
  
  <p>Does anyone know how I can avoid this problem?</p>
  
  <p>Thanks a lot!</p>