diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-05-05 17:23:00 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-05-05 17:23:00 +0000 |
commit | 6c89f97e45baf5cbda183f0fdda4135545d0ffbc (patch) | |
tree | e3e3fe0c1f8fb353183f13e6861c5242e8bed703 /lib/sqlalchemy/mapping/mapper.py | |
parent | a7ba115c3dd536ac75c334838872c3f587a9c2ec (diff) | |
download | sqlalchemy-6c89f97e45baf5cbda183f0fdda4135545d0ffbc.tar.gz |
fixed a _get_criterion mismatch, cleaned up types + updated types doc
Diffstat (limited to 'lib/sqlalchemy/mapping/mapper.py')
-rw-r--r-- | lib/sqlalchemy/mapping/mapper.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/sqlalchemy/mapping/mapper.py b/lib/sqlalchemy/mapping/mapper.py index 15d197a34..7977cae6a 100644 --- a/lib/sqlalchemy/mapping/mapper.py +++ b/lib/sqlalchemy/mapping/mapper.py @@ -450,6 +450,22 @@ class Mapper(object): self._options[optkey] = mapper return mapper + def _get_criterion(self, key, value): + """used by select_by to match a key/value pair against + local properties, column names, or a matching property in this mapper's + list of relations.""" + if self.props.has_key(key): + return self.props[key].columns[0] == value + elif self.table.c.has_key(key): + return self.table.c[key] == value + else: + for prop in self.props.values(): + c = prop.get_criterion(key, value) + if c is not None: + return c + else: + return None + def __getattr__(self, key): if (key.startswith('select_by_') or key.startswith('get_by_')): return getattr(self.query, key) |