Прежде всего, я новичок в python, и это мой первый пост, поэтому, пожалуйста, дайте мне знать, если я что-то здесь не так сделал, и я с удовольствием это исправлю.
Я использую Python 2.7.15rc1 и Peewee 3.6.4
Я пытаюсь создать класс, унаследованный от модели peewee, а также от QObject PySide.QtCore. Просто так:
class BaseModel(Model, QObject):
id = PrimaryKeyField()
class Meta:
database = db
def __str__(self):
return str(self.__dict__)
def __eq__(self, other):
return self.id == other.id
Но эта конфигурация приносит мне следующую ошибку:
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
Если я попытаюсь указать Model в качестве желаемого метакласса (и я думаю, что это нормально, потому что в основном мне нужно только, чтобы отношение «is» с QObject было истинным), добавив его в BaseModel:
__metaclass__ = Model
Выдается следующая ошибка:
AttributeError: 'Model' object has no attribute '_meta'
также, перейдя по этой ссылке , я изменил код на:
class A (Model):
pass
class B (QObject):
pass
class C(A, B):
pass
class BaseModel(A, B):
__metaclass__ = C
id = PrimaryKeyField()
class Meta:
database = db
def __str__(self):
return str(self.__dict__)
def __eq__(self, other):
return self.id == other.id
Но конфликт метаклассов сохраняется.
Что я здесь не так делаю?