मैं एक सर्वेक्षण उदाहरण की एक पूरी प्रतिलिपि बनाने की कोशिश कर रहा हूं, जिसमें कई अनुभाग हैं, और प्रत्येक अनुभाग में कई प्रश्न हैं और अंततः प्रत्येक प्रश्न में कई विकल्प हैं। मैं MySQL के साथ मानक django 1.3.1 का उपयोग कर रहा हूँ। मुझे एक अलग सर्वेक्षण मालिक के लिए इन सभी तत्वों की पूरी प्रतिलिपि बनाने में सक्षम होना चाहिए। क्या मैं इस समय को ध्यान में रखते है:मैं Django में डीबी ऑब्जेक्ट का गहरा क्लोन कैसे बना सकता हूं?
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()
बहरहाल, यह किसी भी त्रुटि के बिना सभी छोरों के माध्यम से चलाने के लिए लगता है, और सिर्फ सर्वेक्षण की एक प्रति का निर्माण। मैं उम्मीद कर रहा था कि यह सर्वेक्षण सर्वेक्षण के लिए सर्वेक्षण, अनुभाग, प्रश्न, विकल्प की प्रतिलिपि बनाएगा। बस यह पता लगाना प्रतीत नहीं होता कि मैं यहां क्या कर रहा हूं।
कुछ अवलोकन: 1. आपको ['select_related()'] (https://docs.djangoproject.com/en/1.3/ref/models/querysets/#select-related) पढ़ना चाहिए और देखें कि क्या यह है दिलचस्प लग रहा है। 2. आईडी मानों की प्रतिलिपि बनाने में बहुत सावधान रहें या आप अनजाने में डीबी में * मूल * आइटम को ओवरराइट कर सकते हैं। –
आप 'Options.objects.create (...)' और 'section.objects.create (...)' आदि का उपयोग क्यों नहीं कर रहे हैं? आप पीके के साथ बेवकूफ बनने की कोशिश क्यों कर रहे हैं? –
@ पीटर: चयनकर्ता के लिए सूचक के लिए धन्यवाद()। यह मेरे कोड को थोड़ा सा अनुकूलित करना चाहिए :) – Priyeshj