minor cleanup
This commit is contained in:
parent
515ffac246
commit
8a6f36256e
@ -706,23 +706,20 @@ class BaseQuerySet(object):
|
|||||||
with switch_db(self._document, alias) as cls:
|
with switch_db(self._document, alias) as cls:
|
||||||
collection = cls._get_collection()
|
collection = cls._get_collection()
|
||||||
|
|
||||||
return self.clone_into(self.__class__(self._document, collection))
|
return self._clone_into(self.__class__(self._document, collection))
|
||||||
|
|
||||||
def clone(self):
|
def clone(self):
|
||||||
"""Creates a copy of the current
|
"""Create a copy of the current queryset."""
|
||||||
:class:`~mongoengine.queryset.QuerySet`
|
return self._clone_into(self.__class__(self._document, self._collection_obj))
|
||||||
|
|
||||||
.. versionadded:: 0.5
|
def _clone_into(self, new_qs):
|
||||||
|
"""Copy all of the relevant properties of this queryset to
|
||||||
|
a new queryset (which has to be an instance of
|
||||||
|
:class:`~mongoengine.queryset.base.BaseQuerySet`).
|
||||||
"""
|
"""
|
||||||
return self.clone_into(self.__class__(self._document, self._collection_obj))
|
if not isinstance(new_qs, BaseQuerySet):
|
||||||
|
|
||||||
def clone_into(self, cls):
|
|
||||||
"""Creates a copy of the current
|
|
||||||
:class:`~mongoengine.queryset.base.BaseQuerySet` into another child class
|
|
||||||
"""
|
|
||||||
if not isinstance(cls, BaseQuerySet):
|
|
||||||
raise OperationError(
|
raise OperationError(
|
||||||
'%s is not a subclass of BaseQuerySet' % cls.__name__)
|
'%s is not a subclass of BaseQuerySet' % new_qs.__name__)
|
||||||
|
|
||||||
copy_props = ('_mongo_query', '_initial_query', '_none', '_query_obj',
|
copy_props = ('_mongo_query', '_initial_query', '_none', '_query_obj',
|
||||||
'_where_clause', '_loaded_fields', '_ordering', '_snapshot',
|
'_where_clause', '_loaded_fields', '_ordering', '_snapshot',
|
||||||
@ -733,12 +730,12 @@ class BaseQuerySet(object):
|
|||||||
|
|
||||||
for prop in copy_props:
|
for prop in copy_props:
|
||||||
val = getattr(self, prop)
|
val = getattr(self, prop)
|
||||||
setattr(cls, prop, copy.copy(val))
|
setattr(new_qs, prop, copy.copy(val))
|
||||||
|
|
||||||
if self._cursor_obj:
|
if self._cursor_obj:
|
||||||
cls._cursor_obj = self._cursor_obj.clone()
|
new_qs._cursor_obj = self._cursor_obj.clone()
|
||||||
|
|
||||||
return cls
|
return new_qs
|
||||||
|
|
||||||
def select_related(self, max_depth=1):
|
def select_related(self, max_depth=1):
|
||||||
"""Handles dereferencing of :class:`~bson.dbref.DBRef` objects or
|
"""Handles dereferencing of :class:`~bson.dbref.DBRef` objects or
|
||||||
@ -760,7 +757,8 @@ class BaseQuerySet(object):
|
|||||||
"""
|
"""
|
||||||
queryset = self.clone()
|
queryset = self.clone()
|
||||||
queryset._limit = n if n != 0 else 1
|
queryset._limit = n if n != 0 else 1
|
||||||
# Return self to allow chaining
|
|
||||||
|
# Return the new queryset to allow chaining
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def skip(self, n):
|
def skip(self, n):
|
||||||
|
@ -136,13 +136,15 @@ class QuerySet(BaseQuerySet):
|
|||||||
return self._len
|
return self._len
|
||||||
|
|
||||||
def no_cache(self):
|
def no_cache(self):
|
||||||
"""Convert to a non_caching queryset
|
"""Convert to a non-caching queryset
|
||||||
|
|
||||||
.. versionadded:: 0.8.3 Convert to non caching queryset
|
.. versionadded:: 0.8.3 Convert to non caching queryset
|
||||||
"""
|
"""
|
||||||
if self._result_cache is not None:
|
if self._result_cache is not None:
|
||||||
raise OperationError('QuerySet already cached')
|
raise OperationError('QuerySet already cached')
|
||||||
return self.clone_into(QuerySetNoCache(self._document, self._collection))
|
|
||||||
|
return self._clone_into(QuerySetNoCache(self._document,
|
||||||
|
self._collection))
|
||||||
|
|
||||||
|
|
||||||
class QuerySetNoCache(BaseQuerySet):
|
class QuerySetNoCache(BaseQuerySet):
|
||||||
@ -153,7 +155,7 @@ class QuerySetNoCache(BaseQuerySet):
|
|||||||
|
|
||||||
.. versionadded:: 0.8.3 Convert to caching queryset
|
.. versionadded:: 0.8.3 Convert to caching queryset
|
||||||
"""
|
"""
|
||||||
return self.clone_into(QuerySet(self._document, self._collection))
|
return self._clone_into(QuerySet(self._document, self._collection))
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
"""Provides the string representation of the QuerySet
|
"""Provides the string representation of the QuerySet
|
||||||
|
Loading…
x
Reference in New Issue
Block a user