मैंने Django ORM के लिए INNER JOIN के लिए एक फिक्स लागू किया है, यह INNER जॉइन के साथ ऑर्डर करने के मामले में STRAIGHT_JOIN का उपयोग करेगा। मैंने Django core-devs से बात की और हमने इसे अभी के लिए एक अलग बैकएंड के रूप में करने का फैसला किया। तो आप इसे यहां देख सकते हैं:https://pypi.python.org/pypi /django-mysql-fix
हालाँकि, एक और उपाय है। James's answer से एक स्निपेट का उपयोग करें, लेकिन इसके साथ select_संबंधित बदलें:
qs = qs.select_related('').prefetch_related('wheel', 'dealer', 'category')
यह इनर जॉइन को रद्द कर देगा और 4 अलग-अलग प्रश्नों का उपयोग करेगा:1 कार लाने के लिए और 3 अन्य car_id
के साथ आईएन (...)।
अद्यतन करें: मुझे एक और उपाय मिल गया है। एक बार जब आप अपने विदेशीकी फ़ील्ड में शून्य =सही निर्दिष्ट करते हैं, तो Django इनर जॉइन के बजाय बाएं बाहरी जॉइन का उपयोग करेगा। LEFT OUTER JOIN इस मामले में प्रदर्शन के मुद्दों के बिना काम करता है, लेकिन आपको अन्य मुद्दों का सामना करना पड़ सकता है जिनके बारे में मुझे अभी तक पता नहीं है।