From 53d66b72673550efa9316acd097c4dc8275a8346 Mon Sep 17 00:00:00 2001 From: Michael Henson Date: Thu, 27 Jan 2011 23:51:10 -0500 Subject: [PATCH] Added QuerySet.clone() to support copying querysets --- mongoengine/queryset.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mongoengine/queryset.py b/mongoengine/queryset.py index 519dda03..5d48e6ef 100644 --- a/mongoengine/queryset.py +++ b/mongoengine/queryset.py @@ -293,6 +293,20 @@ class QuerySet(object): self._cursor_obj = None self._limit = None self._skip = None + + def clone(self): + """Creates a copy of the current :class:`~mongoengine.queryset.QuerySet`""" + c = self.__class__(self._document, self._collection_obj) + + copy_props = ('_initial_query', '_query_obj', '_where_clause', + '_loaded_fields', '_ordering', '_snapshot', + '_timeout', '_limit', '_skip') + + for prop in copy_props: + val = getattr(self, prop) + setattr(c, prop, copy.deepcopy(val)) + + return c @property def _query(self):