У меня проблемы с sqlacademy в Python. Я пытаюсь отфильтровать запись в базе данных.
period_filter и process_filter передаются в качестве аргументов этой функции.
Это дает мне одну запись. Тот, который я ожидаю:
for x in session.query(ProcessStatus).filter(ProcessStatus.reporting_period == period_filter and
ProcessStatus.process_name == process_filter):
print(x.id, x.process_name)
Это дает мне ошибку, говоря, что у меня более одной записи:
id_to_update = session.query(ProcessStatus).filter(ProcessStatus.reporting_period == period_filter
and ProcessStatus.process_name == process_filter).one()
Я пытался использовать последний подход для обновления записи в базе данных, но я обновил неправильную запись (я использовал .first (), а не .one () в этом случае), так как я знал, что только одна запись должна удовлетворять обоим условиям фильтра.
Я бы предпочел последний подход, так как я хотел бы сохранить объект в переменной напрямую, так как мне нужно передать его другой функции.