Дорогое сообщество,
Необходим совет, как создать вложенный словарь, к которому можно доступиться через sqlalchemy.relationship.
- Таблица: Parent
| Column | Description |
|---|---|
| id | primary_key |
| parent_id | ForeignKey("**Child.parent_id") |
- Таблица: Child
| Column | Description |
|---|---|
| id | primary_key |
| parent_id | primary_key, nullable=True |
| key | primary_key |
| value | some random value |
Данные в таблицах создаются отдельно друг от друга. На текущий момент связь выглядит следующим образом:
children = relationship(
"Child",
primaryjoin="Parent.parent_id == Child.extension_data_id",
collection_class=attribute_mapped_collection('extension_data_id'))
А хотелось бы вот так, но attribute_mapped_collection этого не предусматривает:(см.параметры attribute_mapped_collection, 2 параметра)
children = relationship(
"Child",
primaryjoin="Parent.parent_id == Child.extension_data_id",
collection_class=attribute_mapped_collection('extension_data_id, key'))
Как результат, я хочу получать через Parent.children = { parent_id: {key : {}, key: {}} ...}
Сейчас же я получаю: Parent.children = { parent_id: {key: value}...}
То есть мне нужна двух-уровневая вложенность.
Пишу сюда второй раз, не стреляйте - спрашивайте, дополню. Пианист играет как умеет.