diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-03-31 12:33:10 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-03-31 12:33:10 +0000 |
| commit | a75dc3406f63ec621f2bc3f9af79152c0df92182 (patch) | |
| tree | 3d9c913d3b8aaf8da555f3f45402f70c0ebe0947 /django | |
| parent | 9a8a15ecbb5016cff40f66c0d8f767c66652cabd (diff) | |
Fixed #13250 -- Corrected a problem with the use of routing rules on the create() call on a Foreign Key. Thanks to chris@xlevus.net for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12895 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/contenttypes/generic.py | 5 | ||||
| -rw-r--r-- | django/db/models/fields/related.py | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/django/contrib/contenttypes/generic.py b/django/contrib/contenttypes/generic.py index dfc857d5f1..102779257a 100644 --- a/django/contrib/contenttypes/generic.py +++ b/django/contrib/contenttypes/generic.py @@ -5,7 +5,7 @@ Classes allowing "generic" relations through ContentType and object-id fields. from django.core.exceptions import ObjectDoesNotExist from django.db import connection from django.db.models import signals -from django.db import models +from django.db import models, router from django.db.models.fields.related import RelatedField, Field, ManyToManyRel from django.db.models.loading import get_model from django.forms import ModelForm @@ -271,7 +271,8 @@ def create_generic_related_manager(superclass): def create(self, **kwargs): kwargs[self.content_type_field_name] = self.content_type kwargs[self.object_id_field_name] = self.pk_val - return super(GenericRelatedObjectManager, self).create(**kwargs) + db = router.db_for_write(self.model, instance=self.instance) + return super(GenericRelatedObjectManager, self).using(db).create(**kwargs) create.alters_data = True return GenericRelatedObjectManager diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 2e63a49bcf..0e1addf1a4 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -419,7 +419,8 @@ class ForeignRelatedObjectsDescriptor(object): def create(self, **kwargs): kwargs.update({rel_field.name: instance}) - return super(RelatedManager, self).create(**kwargs) + db = router.db_for_write(rel_model, instance=instance) + return super(RelatedManager, self).using(db).create(**kwargs) create.alters_data = True def get_or_create(self, **kwargs): |
