diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py index 081f750d93..be12dc6938 100644 --- a/django/contrib/auth/models.py +++ b/django/contrib/auth/models.py @@ -48,7 +48,7 @@ class SiteProfileNotAvailable(Exception): pass class PermissionManager(models.Manager): - def get_by_natural_key(self, codename, app_label, model, using=DEFAULT_DB_ALIAS): + def get_by_natural_key(self, codename, app_label, model, using=None): return self.using(using).get( codename=codename, content_type=ContentType.objects.get_by_natural_key(app_label, model) @@ -106,7 +106,7 @@ class Group(models.Model): return self.name class UserManager(models.Manager): - def create_user(self, username, email, password=None, using=DEFAULT_DB_ALIAS): + def create_user(self, username, email, password=None, using=None): "Creates and saves a User with the given username, e-mail and password." now = datetime.datetime.now() user = self.model(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now) @@ -117,7 +117,7 @@ class UserManager(models.Manager): user.save(using=using) return user - def create_superuser(self, username, email, password, using=DEFAULT_DB_ALIAS): + def create_superuser(self, username, email, password, using=None): u = self.create_user(username, email, password) u.is_staff = True u.is_active = True diff --git a/django/contrib/gis/sitemaps/views.py b/django/contrib/gis/sitemaps/views.py index 52fcada127..1c8ac5c1bc 100644 --- a/django/contrib/gis/sitemaps/views.py +++ b/django/contrib/gis/sitemaps/views.py @@ -59,7 +59,7 @@ def sitemap(request, sitemaps, section=None): xml = smart_str(loader.render_to_string('gis/sitemaps/geo_sitemap.xml', {'urlset': urls})) return HttpResponse(xml, mimetype='application/xml') -def kml(request, label, model, field_name=None, compress=False, using=DEFAULT_DB_ALIAS): +def kml(request, label, model, field_name=None, compress=False, using=None): """ This view generates KML for the given app label, model, and field name. @@ -83,15 +83,15 @@ def kml(request, label, model, field_name=None, compress=False, using=DEFAULT_DB if connection.ops.postgis: # PostGIS will take care of transformation. - placemarks = klass._default_manager.kml(field_name=field_name) + placemarks = klass._default_manager.using(using).kml(field_name=field_name) else: # There's no KML method on Oracle or MySQL, so we use the `kml` # attribute of the lazy geometry instead. placemarks = [] if connection.ops.oracle: - qs = klass._default_manager.transform(4326, field_name=field_name) + qs = klass._default_manager.using(using).transform(4326, field_name=field_name) else: - qs = klass._default_manager.all() + qs = klass._default_manager.using(using).all() for mod in qs: setattr(mod, 'kml', getattr(mod, field_name).kml) placemarks.append(mod) @@ -103,7 +103,7 @@ def kml(request, label, model, field_name=None, compress=False, using=DEFAULT_DB render = render_to_kml return render('gis/kml/placemarks.kml', {'places' : placemarks}) -def kmz(request, label, model, field_name=None, using=DEFAULT_DB_ALIAS): +def kmz(request, label, model, field_name=None, using=None): """ This view returns KMZ for the given app label, model, and field name. """ diff --git a/django/contrib/gis/utils/layermapping.py b/django/contrib/gis/utils/layermapping.py index 9db743aea4..41de5b49c9 100644 --- a/django/contrib/gis/utils/layermapping.py +++ b/django/contrib/gis/utils/layermapping.py @@ -67,7 +67,7 @@ class LayerMapping(object): def __init__(self, model, data, mapping, layer=0, source_srs=None, encoding=None, transaction_mode='commit_on_success', - transform=True, unique=None, using=DEFAULT_DB_ALIAS): + transform=True, unique=None, using=None): """ A LayerMapping object is initialized using the given Model (not an instance), a DataSource (or string path to an OGR-supported data file), and a mapping diff --git a/django/db/models/query.py b/django/db/models/query.py index 1059352945..5b5a2e7f76 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -28,7 +28,7 @@ class QuerySet(object): def __init__(self, model=None, query=None, using=None): self.model = model # EmptyQuerySet instantiates QuerySet with model as None - self.db = using or DEFAULT_DB_ALIAS + self._db = using self.query = query or sql.Query(self.model) self._result_cache = None self._iter = None @@ -688,7 +688,7 @@ class QuerySet(object): Selects which database this QuerySet should excecute it's query against. """ clone = self._clone() - clone.db = alias + clone._db = alias return clone ################################### @@ -708,6 +708,11 @@ class QuerySet(object): return False ordered = property(ordered) + def db(self): + "Return the database that will be used if this query is executed now" + return self._db or DEFAULT_DB_ALIAS + db = property(db) + ################### # PRIVATE METHODS # ################### @@ -719,7 +724,7 @@ class QuerySet(object): if self._sticky_filter: query.filter_is_sticky = True c = klass(model=self.model, query=query) - c.db = self.db + c._db = self._db c.__dict__.update(kwargs) if setup and hasattr(c, '_setup_query'): c._setup_query() diff --git a/tests/modeltests/fixtures/models.py b/tests/modeltests/fixtures/models.py index 4be9a9c17c..79b93c50f9 100644 --- a/tests/modeltests/fixtures/models.py +++ b/tests/modeltests/fixtures/models.py @@ -57,7 +57,7 @@ class Tag(models.Model): self.tagged, self.name) class PersonManager(models.Manager): - def get_by_natural_key(self, name, using=DEFAULT_DB_ALIAS): + def get_by_natural_key(self, name, using=None): return self.using(using).get(name=name) class Person(models.Model): diff --git a/tests/regressiontests/fixtures_regress/models.py b/tests/regressiontests/fixtures_regress/models.py index dab8d3b8fa..d34bc3fc0e 100644 --- a/tests/regressiontests/fixtures_regress/models.py +++ b/tests/regressiontests/fixtures_regress/models.py @@ -83,7 +83,7 @@ class WidgetProxy(Widget): # Check for forward references in FKs and M2Ms with natural keys class TestManager(models.Manager): - def get_by_natural_key(self, key, using=DEFAULT_DB_ALIAS): + def get_by_natural_key(self, key, using=None): return self.using(using).get(name=key) class Store(models.Model): diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py index 83542d1528..e1969c2e79 100644 --- a/tests/regressiontests/generic_inline_admin/tests.py +++ b/tests/regressiontests/generic_inline_admin/tests.py @@ -107,7 +107,6 @@ class GenericAdminViewTest(TestCase): self.assertEquals(formset.forms[0].as_p(), '

') self.assertEquals(formset.forms[1].as_p(), '

') - def testGenericInlineFormsetFactory(self): # Regression test for #10522. inline_formset = generic_inlineformset_factory(Media, diff --git a/tests/regressiontests/multiple_database/models.py b/tests/regressiontests/multiple_database/models.py index 88ab88e9eb..8f5339854b 100644 --- a/tests/regressiontests/multiple_database/models.py +++ b/tests/regressiontests/multiple_database/models.py @@ -17,7 +17,7 @@ class Review(models.Model): ordering = ('source',) class PersonManager(models.Manager): - def get_by_natural_key(self, name, using=DEFAULT_DB_ALIAS): + def get_by_natural_key(self, name, using=None): return self.using(using).get(name=name) class Person(models.Model):