diff options
| author | Alex Gaynor <alex.gaynor@gmail.com> | 2009-12-12 02:10:28 +0000 |
|---|---|---|
| committer | Alex Gaynor <alex.gaynor@gmail.com> | 2009-12-12 02:10:28 +0000 |
| commit | c88113683d6538dbc2f779ff57fd1ea20211abec (patch) | |
| tree | 48756d324a15b8d1d990855ad3249f607a81ebf5 /django/db/models/fields/related.py | |
| parent | 353e0797920fbf5170653c9a9aabe2572a5ad214 (diff) | |
| download | django-c88113683d6538dbc2f779ff57fd1ea20211abec.tar.gz | |
[soc2009/multidb] Merged up to trunk r11810. There are many conflicts in this merge, these will be resolved in a subsequent commit.
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/multidb@11812 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/db/models/fields/related.py')
| -rw-r--r-- | django/db/models/fields/related.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index f8ae5b1f4e..e3520965e1 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -474,7 +474,11 @@ def create_many_related_manager(superclass, rel=False): if not rel.through._meta.auto_created: opts = through._meta raise AttributeError, "Cannot use create() on a ManyToManyField which specifies an intermediary model. Use %s.%s's Manager instead." % (opts.app_label, opts.object_name) +<<<<<<< HEAD:django/db/models/fields/related.py new_obj = super(ManyRelatedManager, self).using(self.instance._state.db).create(**kwargs) +======= + new_obj = super(ManyRelatedManager, self).create(**kwargs) +>>>>>>> master:django/db/models/fields/related.py self.add(new_obj) return new_obj create.alters_data = True @@ -501,15 +505,22 @@ def create_many_related_manager(superclass, rel=False): new_ids = set() for obj in objs: if isinstance(obj, self.model): +<<<<<<< HEAD:django/db/models/fields/related.py if obj._state.db != self.instance._state.db: raise ValueError('Cannot add "%r": instance is on database "%s", value is is on database "%s"' % (obj, self.instance._state.db, obj._state.db)) +======= +>>>>>>> master:django/db/models/fields/related.py new_ids.add(obj.pk) elif isinstance(obj, Model): raise TypeError, "'%s' instance expected" % self.model._meta.object_name else: new_ids.add(obj) +<<<<<<< HEAD:django/db/models/fields/related.py vals = self.through._default_manager.using(self.instance._state.db).values_list(target_field_name, flat=True) +======= + vals = self.through._default_manager.values_list(target_field_name, flat=True) +>>>>>>> master:django/db/models/fields/related.py vals = vals.filter(**{ source_field_name: self._pk_val, '%s__in' % target_field_name: new_ids, @@ -518,7 +529,11 @@ def create_many_related_manager(superclass, rel=False): # Add the ones that aren't there already for obj_id in (new_ids - vals): +<<<<<<< HEAD:django/db/models/fields/related.py self.through._default_manager.using(self.instance._state.db).create(**{ +======= + self.through._default_manager.create(**{ +>>>>>>> master:django/db/models/fields/related.py '%s_id' % source_field_name: self._pk_val, '%s_id' % target_field_name: obj_id, }) @@ -538,14 +553,22 @@ def create_many_related_manager(superclass, rel=False): else: old_ids.add(obj) # Remove the specified objects from the join table +<<<<<<< HEAD:django/db/models/fields/related.py self.through._default_manager.using(self.instance._state.db).filter(**{ +======= + self.through._default_manager.filter(**{ +>>>>>>> master:django/db/models/fields/related.py source_field_name: self._pk_val, '%s__in' % target_field_name: old_ids }).delete() def _clear_items(self, source_field_name): # source_col_name: the PK colname in join_table for the source object +<<<<<<< HEAD:django/db/models/fields/related.py self.through._default_manager.using(self.instance._state.db).filter(**{ +======= + self.through._default_manager.filter(**{ +>>>>>>> master:django/db/models/fields/related.py source_field_name: self._pk_val }).delete() |
