summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-03-31 12:33:10 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-03-31 12:33:10 +0000
commita75dc3406f63ec621f2bc3f9af79152c0df92182 (patch)
tree3d9c913d3b8aaf8da555f3f45402f70c0ebe0947 /django
parent9a8a15ecbb5016cff40f66c0d8f767c66652cabd (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.py5
-rw-r--r--django/db/models/fields/related.py3
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):