Свойство не-SQLAlchemy в модели SQLAlchemy - PullRequest
0 голосов
/ 21 июня 2019

Допустим, у меня определена эта модель:

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)

Кажется, я не могу найти много, если есть информация об этом. Возможны ли эти свойства смешанного типа? Если нет, есть ли способ обойти это?

...