summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/base.py3
-rw-r--r--tests/order_with_respect_to/base_tests.py14
2 files changed, 14 insertions, 3 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py
index cf3f25319d..76beda4d84 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -17,7 +17,6 @@ from django.core.exceptions import (
ValidationError,
)
from django.db import (
- DEFAULT_DB_ALIAS,
DJANGO_VERSION_PICKLE_KEY,
DatabaseError,
connection,
@@ -2370,8 +2369,6 @@ class Model(metaclass=ModelBase):
def method_set_order(self, ordered_obj, id_list, using=None):
- if using is None:
- using = DEFAULT_DB_ALIAS
order_wrt = ordered_obj._meta.order_with_respect_to
filter_args = order_wrt.get_forward_related_filter(self)
ordered_obj.objects.db_manager(using).filter(**filter_args).bulk_update(
diff --git a/tests/order_with_respect_to/base_tests.py b/tests/order_with_respect_to/base_tests.py
index 0767d5080f..c895074e42 100644
--- a/tests/order_with_respect_to/base_tests.py
+++ b/tests/order_with_respect_to/base_tests.py
@@ -6,6 +6,8 @@ from operator import attrgetter
class BaseOrderWithRespectToTests:
+ databases = {"default", "other"}
+
# Hook to allow subclasses to run these tests with alternate models.
Answer = None
Post = None
@@ -108,3 +110,15 @@ class BaseOrderWithRespectToTests:
a1.delete()
new_answer = self.Answer.objects.create(text="Black", question=q1)
self.assertSequenceEqual(q1.answer_set.all(), [a2, a4, new_answer])
+
+ def test_database_routing(self):
+ class WriteToOtherRouter:
+ def db_for_write(self, model, **hints):
+ return "other"
+
+ with self.settings(DATABASE_ROUTERS=[WriteToOtherRouter()]):
+ with self.assertNumQueries(0, using="default"), self.assertNumQueries(
+ 1,
+ using="other",
+ ):
+ self.q1.set_answer_order([3, 1, 2, 4])