Допустим, у меня определена эта модель:
class AccountModel(Base):
__tablename__ = 'Accounts'
account_id = Column(Integer, primary_key=True)
name = Column(String)
objects = relationship(ObjectModel, back_populates="account")
У меня также есть не-SQLAlchemy, собственный объектный тип Graphene, который заполняется с помощью вызова REST, и я хотел бы добавить его в AccountModel:
class AccountMeta(ObjectType):
status = String()
account_type = String()
lineage = String()
Когда я пытаюсь добавить свойство к модели напрямую, вот так:
class AccountModel(Base):
__tablename__ = 'Accounts'
account_id = Column(Integer, primary_key=True)
name = Column(String)
objects = relationship(ObjectModel, back_populates="account")
metadata = AccountMeta()
Я получаю следующую ошибку: AttributeError: 'AccountMeta' object has no attribute 'schema'
В любом случае это кажется неправильным, поскольку мне нужно передать свойство account_id резолверу, и я не уверен, ссылается ли мой резолвер в соответствующем SQLAlchemyObjectType
на свойство, которое существует в этом контексте:
class AccountDb(SQLAlchemyObjectType):
class Meta:
model = AccountModel
interfaces = (relay.Node,)
def resolve_metadata(self, info):
return get_account_meta(self.account_id)
Кажется, я не могу найти много, если есть информация об этом. Возможны ли эти свойства смешанного типа? Если нет, есть ли способ обойти это?