diff options
| author | Jacob Kaplan-Moss <jacob@jacobian.org> | 2006-06-27 20:36:25 +0000 |
|---|---|---|
| committer | Jacob Kaplan-Moss <jacob@jacobian.org> | 2006-06-27 20:36:25 +0000 |
| commit | 48562965b900bd8d4ba5f6fef4b635af844b5cee (patch) | |
| tree | 01f9d4bdf1790bb6882ff25b695cf907233726c6 /django | |
| parent | 2adbe11678030a019c1e279501e688acae3f85ce (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.py | 7 | ||||
| -rw-r--r-- | django/db/models/query.py | 9 |
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): """ |
