У меня есть код написан на Python, используя SQLAlchemy.Как получить идентификатор недавно добавленного дочернего элемента в Python SQLAlchemy?
dailyCashFlow = models.DailyCashFlow(day=day, cash_start_of_day = cash_start_of_day, cash_end_of_day = cash_end_of_day)
branch.dailyCashFlow.append(dailyCashFlow)
db.session.commit()
result['result'] = True
result['message'] = string.join(['Daily cashflow saved successfully with ID=#'], `dailyCashFlow.id`)
Отношения примерно: company-> branches-> dailyCashflow. Я хочу получить идентификатор только что вставленного dailyCashFlow.id. Я думаю, что я могу легко вернуться к объекту dailyCashFlow, чтобы получить идентификатор, но это не так. В модели используется lazy = 'dynamic'. Это причина? И как я могу легко получить идентификатор вновь вставленных данных?
Я не понимаю, когда вы говорите: «Я думаю, что могу легко вернуться к объекту dailyCashFlow, чтобы получить идентификатор, но это не так». Это не так? Если вы выполняете 'print dailyCashFlow.id' после фиксации, что вы получаете? –
Это ничего не печатает. Пустой. Никто. Я уже знал, что, если я создам компанию (модель верхнего уровня), после фиксации базы данных, я получу новый идентификатор. Но в этом dailyCashFlow у меня не получилось. Хм .. может быть, мне пришлось перепроверить это :) – swdev
, если dailyCashFlow имеет None для первичного ключа после завершения сеанса, то он не был вставлен. предполагая, что вы обычно обращаетесь к столбцу первичного ключа, а не заглядываете внутрь '__dict__' или что-то в этом роде. вы уверены, что «ветвь» является частью того же сеанса, и если да, то как выглядят сопоставления? – zzzeek