我想以最优雅的 Python 方式实现:尝试在数据库中的某个过滤器上查找对象。只有在没有结果的情况下,才尝试使用另一个过滤器查找对象。如果没有返回结果,则该对象不存在,因此插入一个新实例。
我在想什么:
try:
obj = session.query(model).filter_by(field_a).one()
except NoObjFound:
try:
obj = session.query(model).filter_by(field_b).one()
except NoObjFound:
insert_into_db(brand_new_obj)
else:
update_the_obj(obj)
我不确定这个块是否正确或处理我想要完成的事情的最佳方式。