diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2017-05-23 12:08:51 -0400 |
---|---|---|
committer | Gerrit Code Review <gerrit@awstats.zzzcomputing.com> | 2017-05-23 12:08:51 -0400 |
commit | 1d0067a873a8e701b5eb8246fa6a883521c76491 (patch) | |
tree | 9825fe51449064e39fdd0a2c1ec5bb3ed0e5b51c /lib/sqlalchemy/orm/util.py | |
parent | 7fc7492d86f6e5ca105743a184cd07190e9f9b28 (diff) | |
parent | 1c692f019b16ff4f3eb17ea8d09731837cc3be76 (diff) | |
download | sqlalchemy-1d0067a873a8e701b5eb8246fa6a883521c76491.tar.gz |
Merge "Add clause adaptation for AliasedClass to with_parent()"
Diffstat (limited to 'lib/sqlalchemy/orm/util.py')
-rw-r--r-- | lib/sqlalchemy/orm/util.py | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py index eebe18837..9a397ccf3 100644 --- a/lib/sqlalchemy/orm/util.py +++ b/lib/sqlalchemy/orm/util.py @@ -974,7 +974,7 @@ def outerjoin(left, right, onclause=None, full=False, join_to_left=None): return _ORMJoin(left, right, onclause, True, full) -def with_parent(instance, prop): +def with_parent(instance, prop, from_entity=None): """Create filtering criterion that relates this query's primary entity to the given related instance, using established :func:`.relationship()` configuration. @@ -985,13 +985,6 @@ def with_parent(instance, prop): Python without the need to render joins to the parent table in the rendered statement. - .. versionchanged:: 0.6.4 - This method accepts parent instances in all - persistence states, including transient, persistent, and detached. - Only the requisite primary key/foreign key attributes need to - be populated. Previous versions didn't work with transient - instances. - :param instance: An instance which has some :func:`.relationship`. @@ -1000,6 +993,12 @@ def with_parent(instance, prop): what relationship from the instance should be used to reconcile the parent/child relationship. + :param from_entity: + Entity in which to consider as the left side. This defaults to the + "zero" entity of the :class:`.Query` itself. + + .. versionadded:: 1.2 + """ if isinstance(prop, util.string_types): mapper = object_mapper(instance) @@ -1007,7 +1006,7 @@ def with_parent(instance, prop): elif isinstance(prop, attributes.QueryableAttribute): prop = prop.property - return prop._with_parent(instance) + return prop._with_parent(instance, from_entity=from_entity) def has_identity(object): |