मैं दो django संकुल का उपयोग करता हूं - django-mptt (संशोधित प्रीऑर्डर ट्री ट्रैवर्सल को कार्यान्वित करने के लिए उपयोगिताओं) और django-hvad (मॉडल अनुवाद)।डबल विरासत मेटाक्लास संघर्ष का कारण बनता है
मैं MenuItem एक मॉडल वर्ग है और मैं चाहता हूँ यह TranslatableModel और MPTTModel, इस तरह फैली करने के लिए:
class MenuItem(TranslatableModel, MPTTModel):
लेकिन यह metaclass संघर्ष का कारण बनता है:
(TypeError: Error when calling the metaclass bases
metaclass conflict: the metaclass of a derived class
must be a (non-strict) subclass of the metaclasses of all its bases)
क्या इस समाधान है मुसीबत? मुझे आशा है कि मैं डबल विरासत का उपयोग कर सकता हूं।
आपको एकाधिक विरासत की आवश्यकता क्यों है? जब आप कर सकते हैं तो इससे बचने के लिए आमतौर पर सबसे अच्छा होता है। – jathanism
क्योंकि मेनूइटम में अनुवाद हैं (अनुवाद करने योग्य मॉडल को विस्तारित करने की आवश्यकता है) और पेड़ पदानुक्रम होना चाहिए (MPTTModel को विस्तारित करने की आवश्यकता है)। –
संबंधित: http://stackoverflow.com/a/7314847/194311 – jathanism