improved get_or_create
This commit is contained in:
parent
8d953f0bcb
commit
b3cc2f990a
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user