summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2006-06-27 20:36:25 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2006-06-27 20:36:25 +0000
commit48562965b900bd8d4ba5f6fef4b635af844b5cee (patch)
tree01f9d4bdf1790bb6882ff25b695cf907233726c6 /django
parent2adbe11678030a019c1e279501e688acae3f85ce (diff)
Added {{{Manager.create()}}} method to create and save an object in a single step.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3217 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/db/models/manager.py7
-rw-r--r--django/db/models/query.py9
2 files changed, 14 insertions, 2 deletions
diff --git a/django/db/models/manager.py b/django/db/models/manager.py
index f679c5492c..46a1710c1c 100644
--- a/django/db/models/manager.py
+++ b/django/db/models/manager.py
@@ -69,8 +69,11 @@ class Manager(object):
def get(self, *args, **kwargs):
return self.get_query_set().get(*args, **kwargs)
- def get_or_create(self, *args, **kwargs):
- return self.get_query_set().get_or_create(*args, **kwargs)
+ def get_or_create(self, **kwargs):
+ return self.get_query_set().get_or_create(**kwargs)
+
+ def create(self, **kwargs):
+ return self.get_query_set().create(**kwargs)
def filter(self, *args, **kwargs):
return self.get_query_set().filter(*args, **kwargs)
diff --git a/django/db/models/query.py b/django/db/models/query.py
index e826efa779..efbe68cb66 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -204,6 +204,15 @@ class QuerySet(object):
raise self.model.DoesNotExist, "%s matching query does not exist." % self.model._meta.object_name
assert len(obj_list) == 1, "get() returned more than one %s -- it returned %s! Lookup parameters were %s" % (self.model._meta.object_name, len(obj_list), kwargs)
return obj_list[0]
+
+ def create(self, **kwargs):
+ """
+ Create a new object with the given kwargs, saving it to the database
+ and returning the created object.
+ """
+ obj = self.model(**kwargs)
+ obj.save()
+ return obj
def get_or_create(self, **kwargs):
"""