Вы на самом деле не создаете новый объект - вы просто указываете переменную на существующую запись.Что-то вроде этого, вероятно, будет работать:
for course in courses:
newCourse = Course() # Create a new object
newCourse.semester = 'Spring 2012'
newCourse.otherProperty = course.otherProperty # Copy other properties as needed
newCourse.save()
Вы можете даже обернуть это в методе класса Course
:
class Course(models.Model):
# Other stuff
def copy(semester=None):
new_course = Course()
new_course.other_property = self.other_property
if semester is not None:
new_course.semester = semester
return new_course
И просто сделать:
for course in courses:
newCourse = course.copy(semester='Spring 2012')
newCourse.save()