Ниже приведен метод, который я пытаюсь использовать для соединения таблицы заголовков и таблицы подробностей, связанных с полем apseqnum. Я пытаюсь выполнять эти запросы на лету, основываясь на любых полях, которые мне могут понадобиться в данный момент, но когда я генерирую оператор and, я не могу понять, как указать таблицу, на которую я ссылаюсь. Все должно быть основано на таблице заголовков, но заголовок. c .key не работает, когда я пытаюсь это сделать.
def payables(**field):
conn = ap_engine.connect()
metadata = MetaData()
metadata.reflect(bind=ap_engine)
header = metadata.tables["apInvoiceHdr"]
detail = metadata.tables["apInvoiceDtl"]
and_st = [db.sql.column(key) == value for key, value in field.items()]
print(and_st)
join = header.join(detail, header.c.apseqnum == detail.c.apseqnum)
select_st = select([header]).select_from(join).where(
db.and_(*and_st)
)
results = conn.execute(select_st)
keys = conn.execute(select_st).keys()
df = pd.DataFrame(results, columns=keys)
return df