Author: jbronn
Date: 2011-09-10 10:19:05 -0700 (Sat, 10 Sep 2011)
New Revision: 16779
Modified:
django/trunk/django/contrib/gis/utils/layermapping.py
django/trunk/django/contrib/gis/utils/srs.py
Log:
Fixed #16537 -- Fixed multi-db issues with GeoDjango utilities. Thanks, Shane
Shifflett for the bug report and aaugustin for the initial patch.
Modified: django/trunk/django/contrib/gis/utils/layermapping.py
===================================================================
--- django/trunk/django/contrib/gis/utils/layermapping.py 2011-09-10
17:09:23 UTC (rev 16778)
+++ django/trunk/django/contrib/gis/utils/layermapping.py 2011-09-10
17:19:05 UTC (rev 16779)
@@ -132,9 +132,6 @@
else:
raise LayerMapError('Unrecognized transaction mode: %s' %
transaction_mode)
- if using is None:
- pass
-
#### Checking routines used during initialization ####
def check_fid_range(self, fid_range):
"This checks the `fid_range` keyword."
@@ -393,7 +390,7 @@
# Attempting to retrieve and return the related model.
try:
- return rel_model.objects.get(**fk_kwargs)
+ return rel_model.objects.using(self.using).get(**fk_kwargs)
except ObjectDoesNotExist:
raise MissingForeignKey('No ForeignKey %s model found with keyword
arguments: %s' % (rel_model.__name__, fk_kwargs))
@@ -429,7 +426,7 @@
SpatialRefSys = self.spatial_backend.spatial_ref_sys()
try:
# Getting the target spatial reference system
- target_srs =
SpatialRefSys.objects.get(srid=self.geo_field.srid).srs
+ target_srs =
SpatialRefSys.objects.using(self.using).get(srid=self.geo_field.srid).srs
# Creating the CoordTransform object
return CoordTransform(self.source_srs, target_srs)
Modified: django/trunk/django/contrib/gis/utils/srs.py
===================================================================
--- django/trunk/django/contrib/gis/utils/srs.py 2011-09-10 17:09:23 UTC
(rev 16778)
+++ django/trunk/django/contrib/gis/utils/srs.py 2011-09-10 17:19:05 UTC
(rev 16779)
@@ -1,8 +1,7 @@
from django.contrib.gis.gdal import SpatialReference
-from django.db import connections, DEFAULT_DB_ALIAS
def add_srs_entry(srs, auth_name='EPSG', auth_srid=None, ref_sys_name=None,
- database=DEFAULT_DB_ALIAS):
+ database=None):
"""
This function takes a GDAL SpatialReference system and adds its information
to the `spatial_ref_sys` table of the spatial backend. Doing this enables
@@ -33,7 +32,11 @@
of `django.db.DEFAULT_DB_ALIAS` (at the time of this writing, it's value
is 'default').
"""
+ from django.db import connections, DEFAULT_DB_ALIAS
+ if not database:
+ database = DEFAULT_DB_ALIAS
connection = connections[database]
+
if not hasattr(connection.ops, 'spatial_version'):
raise Exception('The `add_srs_entry` utility only works '
'with spatial backends.')
@@ -69,9 +72,9 @@
try:
# Try getting via SRID only, because using all kwargs may
# differ from exact wkt/proj in database.
- sr = SpatialRefSys.objects.get(srid=srs.srid)
+ sr = SpatialRefSys.objects.using(database).get(srid=srs.srid)
except SpatialRefSys.DoesNotExist:
- sr = SpatialRefSys.objects.create(**kwargs)
+ sr = SpatialRefSys.objects.using(database).create(**kwargs)
# Alias is for backwards-compatibility purposes.
add_postgis_srs = add_srs_entry
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.