Как вы вызываете конкретное c поле в sqlalchemy при использовании ** kwargs для генерации оператора and? - PullRequest
0 голосов
/ 13 апреля 2020

Ниже приведен метод, который я пытаюсь использовать для соединения таблицы заголовков и таблицы подробностей, связанных с полем 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...