I am running a query based off of other ids for the query. The problem i have is that sometimes the query won’t find a result. Instead of having the entire program crash, how can I check to see if the result will be None?
This is the query I have:
sub_report_id = DBSession.query(TSubReport.ixSubReport).filter(and_(TSubReport.ixSection==sectionID[0], TSubReport.ixReport== reportID[0])).one()
When the code gets executed and no results are found, I get a NoResultFound exception
NoResultFound: No row was found for one()
is there a way to just skip the query if there is not going to be a result?
Found the solution on SO(couldn’t find it before) Getting first row from sqlalchemy
Advertisement
Answer
Use first() function instead of one(). It will return None if there is no results.
sub_report_id = DBSession.query(TSubReport.ixSubReport).filter(and_(TSubReport.ixSection==sectionID[0], TSubReport.ixReport== reportID[0])).first()
see documentation here