Классический маппер SQLAlchemy, настраиваемый тип данных, из столбцов - PullRequest
0 голосов
/ 12 февраля 2019

Я хотел бы использовать классический преобразователь для отображения класса, который использует dicts в качестве своей внутренней структуры данных, в некоторые обычные реляционные таблицы:

# my class
class Order:

    def __init__(self, id: str, lines: dict):
        self.lines = lines  

# order lines are a mapping of product code to quantity ordered,
# eg: Order(id='order-id', lines={'product1': 23, 'product2', 12})


# my tables
order = sqlalchemy.Table(
    'order', metadata,
    Column('id', Integer, primary_key=True, autoincrement=True),
)

order_lines = sqlalchemy.Table(
    'order_lines', metadata,
    Column('order_id', ForeignKey('order.id'), primary_key=True),
    Column('product_code', String(255), primary_key=True),
    Column('quantity', Integer),
)

теперь, как настроить mapper в такихспособ, которым он выполнит соединение с таблицей order_lines, а затем преобразует order_lines в dicts, отображающий столбец product_code в столбец количества?

[edit]: может быть, что-то вроде attribute_based_collection может работать?https://docs.sqlalchemy.org/en/latest/orm/extensions/associationproxy.html#proxying-to-dictionary-based-collections

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...