2012-03-02 5 views
6

मैं एक Django दक्षिण प्रवास कि किसी अन्य ऐप्स में मॉडल पर निर्भर करता है लिख रहा हूँ, इसलिए मैं --freeze OTHERAPPNAME को शामिल किया है जब मैं python manage.py datamigration …Django-South DataMigration - ऐप आगे() में उपलब्ध है लेकिन पीछे नहीं()?

भाग गया हालांकि forwards() समारोह में मैं (orm['otherappname.MyModelName'] के साथ) अन्य मॉडल ठीक उपयोग कर सकते हैं, फिर भी में backwards() कदम (जो भी otherappname में मॉडल पर निर्भर करता है), अगर मैं orm['otherappname.MyModelName'] तक पहुँचने का प्रयास, मैं कोई त्रुटि मिलती है

*** KeyError: "The model 'mymodelname' from the app 'otherappname' is not available in this migration." 

मैं फ़ाइल के तल में जमी मॉडल विवरण देख सकते हैं। मैं इसका उपयोग क्यों नहीं कर सकता?

एनबी: यह मॉडल ओथ्रैपनाम के अंदर एक और माइग्रेशन में बनाया गया है जिसमें से यह डाटामैरेशन निर्भर करता है।

उत्तर

10

पिछला माइग्रेशन वास्तव में पिछले माइग्रेशन के जमे हुए ORM का उपयोग करता है। जब आप इसके बारे में सोचते हैं तो यह तार्किक है, लेकिन यह स्वीकार्य रूप से बहुत सहज नहीं है।

नैतिक: उन मॉडलों को फ्रीज करें जिन्हें आपको अपने डेटामैपेशन में स्कीममैरेशन में प्राप्त करने की आवश्यकता होगी।

संबंधित मुद्दे