最も洗練された 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)
このブロックが正しいのか、それとも私が達成しようとしていることを処理する最善の方法なのかはわかりません。