summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/baked.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-09-24 13:52:25 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-09-24 13:52:25 -0400
commit5b71858533ea153dec119b3592631fdb1500a15f (patch)
treed5376860fcee397655effca10bda2853510ddc55 /lib/sqlalchemy/ext/baked.py
parenta9b5fb3f497837c0a4f1122c49c5dd54c87474a0 (diff)
downloadsqlalchemy-5b71858533ea153dec119b3592631fdb1500a15f.tar.gz
- replicate Query.one_or_none to BakedQuery
- changelog / version note finishing
Diffstat (limited to 'lib/sqlalchemy/ext/baked.py')
-rw-r--r--lib/sqlalchemy/ext/baked.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/sqlalchemy/ext/baked.py b/lib/sqlalchemy/ext/baked.py
index f01e0b348..a933e7eb7 100644
--- a/lib/sqlalchemy/ext/baked.py
+++ b/lib/sqlalchemy/ext/baked.py
@@ -283,6 +283,26 @@ class Result(object):
raise orm_exc.MultipleResultsFound(
"Multiple rows were found for one()")
+ def one_or_none(self):
+ """Return one or zero results, or raise an exception for multiple
+ rows.
+
+ Equivalent to :meth:`.Query.one_or_none`.
+
+ .. versionadded:: 1.0.9
+
+ """
+ ret = list(self)
+
+ l = len(ret)
+ if l == 1:
+ return ret[0]
+ elif l == 0:
+ return None
+ else:
+ raise orm_exc.MultipleResultsFound(
+ "Multiple rows were found for one()")
+
def all(self):
"""Return all rows.