ईमानदारी से, अगर वे चीजें आपके लिए अवरोधक हैं, तो Django का उपयोग न करें। मैं Django का बहुत मजबूत समर्थक हूं, लेकिन अगर आपको लगता है कि यह आपकी आवश्यकताओं को पूरा नहीं करता है, तो आपको कुछ और करना चाहिए।
हालांकि मुझे कहना होगा कि वे अजीब चीजें तय करने के लिए हैं। मैं कल्पना नहीं कर सकता कि इंटरमीडिएट एम 2 एम टेबल पर एक अतिरिक्त प्राथमिक कुंजी फ़ील्ड एक समस्या क्यों होगी। (ध्यान दें, हालांकि, पीके सहित - मिश्रित क्षेत्र इस साल समर ऑफ कोड प्रोजेक्ट का विषय रहा है, और विलय के लिए तैयार दिखता है - देखें https://groups.google.com/forum/#!topic/django-developers/CD7OrkJ63zc )
और फिर, SQL स्तर पर चूक की कमी क्यों "जीवन को कठिन बनाती है" समझना मुश्किल है:यदि आप Django के ORM के माध्यम से सब कुछ कर रहे हैं, जहां डिफ़ॉल्ट लागू होता है तो कोई फर्क नहीं पड़ता; साथ ही, जैसा कि एड्रियन ने उस टिकट पर कहा था, एसक्यूएल में ऐसा करने से वास्तव में कॉल करने योग्य डिफ़ॉल्ट जैसी चीजों को असंभव बनाकर वर्तमान कार्यक्षमता कम हो जाएगी।
इसके अलावा, आपको इस बात पर भी विचार करना चाहिए कि आप इन अपेक्षाकृत तुच्छ विवरणों को क्यों दे रहे हैं जो Django द्वारा आपको दिए गए महान लाभों को प्रभावित करते हैं:अभिव्यंजक ORM, टेम्पलेट भाषा, संपन्न समुदाय, बड़ी संख्या में तृतीय-पक्ष एप्लिकेशन ... लेकिन, यहां तक कि कहा, एक बार फिर आप कुछ और चुनने के लिए स्वतंत्र हैं यदि यह वास्तव में आपके लिए काम नहीं करता है।