Tôi sử dụng hai gói django - django-mptt (tiện ích để thực hiện Sửa đổi trước khi bắt đầu Tree Traversal) và django-hvad (dịch mô hình).Thừa kế đôi gây ra xung đột metaclass
Tôi có một lớp mô hình MenuItem và tôi muốn nó kéo dài TranslatableModel và MPTTModel, như thế này:
class MenuItem(TranslatableModel, MPTTModel):
nhưng nó gây ra xung đột 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)
giải pháp này là gì vấn đề? Tôi hy vọng rằng tôi có thể sử dụng thừa kế đôi.
Tại sao bạn cần đa thừa kế? Nó thường là tốt nhất để tránh nó khi bạn có thể. – jathanism
Vì MenuItem có bản dịch (cần mở rộng TranslatableModel) và phải có hệ thống phân cấp cây (cần mở rộng MPTTModel). –
Related: http://stackoverflow.com/a/7314847/194311 – jathanism