Я пытаюсь определить модель SQLAlchemy / Elixer, которая может описать следующие отношения. У меня есть таблица SSP, в которой есть несколько внешних ключей для таблицы POC. Я правильно определил отношения ManyToOne в объекте SSP (что позволяет мне SSP.get(1).action.first_name
правильно). Я также хотел бы добавить другую сторону этого отношения, где я могу выполнить что-то вроде POC.get(1).csa
и вернуть список объектов SSP, в которых этот POC определен как idPOCCSA.
Я знаю, что это было бы лучше для полиморфной ассоциации, но я действительно не могу изменить схему БД вообще (создав новую таблицу poc2ssp со столбцом для type
ассоциации).
class POC(Entity):
using_options(tablename = 'poc', autoload = True)
# These two line visually display my "issue":
# csa = OneToMany('SSP')
# action = OneToMany('SSP')
class SSP(Entity):
'''
Many to One Relationships:
- csa: ssp.idPOCCSA = poc.id
- action: ssp.idPOCAction = poc.id
- super: ssp.idSuper = poc.id
'''
using_options(tablename = 'spp', autoload = True)
csa = ManyToOne('POC', colname = 'idPOCCSA')
action = ManyToOne('POC', colname = 'idPOCAction')
super = ManyToOne('POC', colname = 'idPOCSuper')
Есть идеи для этого? В FAQ по Elixer есть хороший пример использования параметров primaryjoin и foreign_keys, но я не могу найти их в документации. Я надеялся, что OneToMany () просто поддерживает параметр colname, как это делает ManyToOne (). Что-то немного менее многословное.