2010-11-11 16 views
8

तो, मैं सोच रहा हूं कि मॉडल में कॉलम के क्रम को कैसे परिभाषित किया जाए ताकि जब Django डेटाबेस उत्पन्न करने के लिए इंजीनियरिंग आगे बढ़ाए, तो भौतिक डेटाबेस तालिका में कॉलम का क्रम मॉडल द्वारा निर्धारित किया जा सकता है अपने आप?Django के मॉडल में आदेश देने वाले कॉलम

वर्तमान में मेरे कुछ मॉडल वर्ग अन्य मॉडल वर्ग से विरासत में हैं, इसलिए व्युत्पन्न मॉडल क्लास हमेशा कॉलम को मूल वर्ग से पहले रखती है, लेकिन मैं इसे नियंत्रित करना चाहता हूं।

धन्यवाद

+0

ने कभी इसके लिए एक समाधान पाया है? Pgsql में फ़ंक्शन को कॉल करते समय ROWTYPE चर का उपयोग पैरामीटर के रूप में करते हैं, मुझे सही कॉलम ऑर्डर में मॉडल को क्रमबद्ध करने की आवश्यकता होती है और मुझे इसके लिए कोई समाधान नहीं मिल रहा है (वर्तमान में django के माइग्रेशनऑटोडेक्टर श्रेणी को समझने की कोशिश कर रहा है) –

उत्तर

0

आप django-admin.py sql चला सकते हैं जो, एसक्यूएल है कि एक या सभी एप्लिकेशन के लिए तालिका बनाता है प्रिंट होगा आपकी आवश्यकताओं को और अपनी पसंद के कुछ db खोल में मैन्युअल रूप से इसे चलाने के लिए एसक्यूएल समायोजित करें!

2

वर्तमान में, Django में ऐसा करने के लिए कोई अंतर्निहित तरीका नहीं है।

मुझे लगता है कि इस पर चर्चा की गई एक django-dev धागा/टिकट याद है, लेकिन मुझे इस समय यह नहीं मिल रहा है। यदि मैं इसे पाता हूं तो मैं इसे अपडेट कर दूंगा (और अगर वे ऐसा करते हैं तो किसी और का स्वागत करते हैं।)

यदि आपको वास्तव में यह बुरा लगता है तो इसे कोर में हैक करने का शायद एक तरीका है।

+0

हम्म, धन्यवाद। मुझे एहसास हुआ कि शायद यह लागू करना इतना आसान नहीं है, क्योंकि माइग्रेशन कॉलम के क्रम को समायोजित करने के लिए थोड़ा मुश्किल लगता है। – zsong

+1

'के बाद = "आईडी" ' –

0

क्या आपको डेटाबेस में फ़ील्ड के क्रम को नियंत्रित करने की आवश्यकता है या जिस तरह से वे उपयोगकर्ताओं को प्रस्तुत किए जाते हैं? यदि उत्तरार्द्ध, वहाँ अन्य विकल्प हैं। उदाहरण के लिए, व्यवस्थापक में आप fieldsets या fields वाले फ़ील्ड के क्रम को नियंत्रित कर सकते हैं।

+3

जैसे kwarg के साथ पर्याप्त सरल होगा, मैं वही चीज़ ढूंढ रहा हूं और हाँ, डेटाबेस में फ़ील्ड के क्रम को नियंत्रित करना महत्वपूर्ण है। क्यूं कर? पठनीयता के लिए। न केवल टेबल और ऐसे में परिवर्तन करते समय, लेकिन डेटा मॉडल को भी खींचते समय। मेरे पास एक TraceModel मेटा क्लास है जो स्वचालित रूप से create_on, created_by, edited_on और edited_by फ़ील्ड प्रदान करती है, लेकिन वे हमेशा प्रत्येक तालिका के शीर्ष पर दिखाई देते हैं और यह सहज नहीं है! – jedmao

4

Django 1.8 पर यह मेरे लिए काम किया:

  • रन ./manage.py makemigrations
  • संपादित प्रवास
  • migrations.CreateModel पर fields सूची को पुन: व्यवस्थित।

मैंने हालांकि विरासत के साथ इसका परीक्षण नहीं किया।

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