From b3cc2f990a9ad612f66f4f7def23972074d77292 Mon Sep 17 00:00:00 2001 From: Florian Schlachter Date: Sat, 30 Jan 2010 22:01:43 +0100 Subject: [PATCH] improved get_or_create --- mongoengine/queryset.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mongoengine/queryset.py b/mongoengine/queryset.py index c40523ae..bec6da2c 100644 --- a/mongoengine/queryset.py +++ b/mongoengine/queryset.py @@ -296,14 +296,16 @@ class QuerySet(object): return mongo_query def get_or_create(self, **kwargs): - """Retreive unique object or create with paras, if it doesn't exist + """Retreive unique object or create, if it doesn't exist """ + defaults = kwargs.get('defaults', {}) + if kwargs.has_key('defaults'): + del kwargs['defaults'] + dataset = self.filter(**kwargs) cnt = dataset.count() if cnt == 0: - if kwargs.has_key('defaults'): - kwargs.update(kwargs.get('defaults')) - del kwargs['defaults'] + kwargs.update(defaults) doc = self._document(**kwargs) doc.save() return doc