Я хотел бы использовать классический преобразователь для отображения класса, который использует 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