Changeset 7249
- Timestamp:
- 03/15/08 09:16:05 (10 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/queryset-refactor/django/db/models/base.py
r7221 r7249 316 316 if values: 317 317 # Create a new record. 318 result = manager._insert(_ return_id=update_pk, **dict(values))318 result = manager._insert(__return_id=update_pk, **dict(values)) 319 319 else: 320 320 # Create a new record with defaults for everything. 321 result = manager._insert(_ return_id=update_pk,322 _ raw_values=True, pk=connection.ops.pk_default_value())321 result = manager._insert(__return_id=update_pk, 322 __raw_values=True, pk=connection.ops.pk_default_value()) 323 323 324 324 if update_pk: django/branches/queryset-refactor/django/db/models/manager.py
r7149 r7249 1 from django.db.models.query import QuerySet, EmptyQuerySet 1 from django.db.models.query import QuerySet, EmptyQuerySet, insert_query 2 2 from django.dispatch import dispatcher 3 3 from django.db.models import signals … … 111 111 return self.get_query_set().reverse(*args, **kwargs) 112 112 113 def _insert(self, * args, **kwargs):114 return self.get_query_set()._insert(*args, **kwargs)113 def _insert(self, **kwargs): 114 return insert_query(self.model, **kwargs) 115 115 116 116 class ManagerDescriptor(object): django/branches/queryset-refactor/django/db/models/query.py
r7248 r7249 458 458 self._iter = None 459 459 460 def _insert(self, _return_id=False, _raw_values=False, **kwargs):461 """462 Inserts a new record for the given model. This provides an interface to463 the InsertQuery class and is how Model.save() is implemented. It is not464 part of the public API of QuerySet, though.465 """466 self._result_cache = None467 query = self.query.clone(sql.InsertQuery)468 query.insert_values(kwargs, _raw_values)469 return query.execute_sql(_return_id)470 _insert.alters_data = True471 472 460 # Use the backend's QuerySet class if it defines one. Otherwise, use _QuerySet. 473 461 if connection.features.uses_custom_queryset: … … 682 670 transaction.commit_unless_managed() 683 671 672 def insert_query(__model, __return_id=False, __raw_values=False, **kwargs): 673 """ 674 Inserts a new record for the given model. This provides an interface to 675 the InsertQuery class and is how Model.save() is implemented. It is not 676 part of the public API. 677 """ 678 query = sql.InsertQuery(__model, connection) 679 query.insert_values(kwargs, __raw_values) 680 return query.execute_sql(__return_id) 681
