Как я могу создать глубокий клон объекта БД в Django?

Я пытаюсь создать полную копию экземпляра опроса, в котором есть несколько разделов, и в каждом разделе есть несколько вопросов, и, наконец, каждый вопрос имеет несколько вариантов. Я использую стандартный django 1.3.1 с MySQL. Мне нужно создать полную копию всех этих элементов для другого владельца опроса. В настоящее время я вижу следующее:

    survey_new = survey
    survey_new.title = survey.title + ' -- Copy'
    survey_new.owner = str(new_owner_id)
    survey_new.created = datetime.now()
    survey_new.pk = None
    survey_new.save()

    for sec in survey.sections.all().order_by('order'):
        sec_n = sec
        sec_n.survey_id = survey_new.id 
        sec_n.pk = None
        sec_n.save()

        for q in sec.questions.all().order_by('order'):
            q_n = q
            q_n.section_id = sec_n.id
            q_n.pk = None
            q_n.save()

            for op in q.options.all().order_by('order'):
                op_n = op
                op_n.question_id = q_n.id
                op_n.pk = None
                op_n.save()

Однако, похоже, он проходит через все циклы без каких-либо ошибок и просто создает копию обзора. Я надеялся, что это скопирует опрос, разделы, вопросы, варианты для этого экземпляра опроса. Просто не могу понять, что я здесь делаю не так.

10
задан Priyeshj 18 January 2012 в 21:50
поделиться