summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2015-11-07 14:43:33 +0100
committerClaude Paroz <claude@2xlibre.net>2015-11-07 16:06:08 +0100
commit194f893f02c2a597e5e59f171a281cdff470836f (patch)
treef818446a2fc79cc506c0384d11cc87b7703eda96
parenta98d08f9f8757f30c88683116c49a634a6c4308a (diff)
[1.9.x] Removed ability to pass a geometry string to GIS functions
This was a possible confusion source with column name arguments. Thanks Sergey Fedoseev for the suggestion.
-rw-r--r--django/contrib/gis/db/models/functions.py12
-rw-r--r--tests/gis_tests/distapp/tests.py4
2 files changed, 3 insertions, 13 deletions
diff --git a/django/contrib/gis/db/models/functions.py b/django/contrib/gis/db/models/functions.py
index 55324a8eaa..7fd8cf1129 100644
--- a/django/contrib/gis/db/models/functions.py
+++ b/django/contrib/gis/db/models/functions.py
@@ -2,7 +2,6 @@ from decimal import Decimal
from django.contrib.gis.db.models.fields import GeometryField
from django.contrib.gis.db.models.sql import AreaField
-from django.contrib.gis.geos.geometry import GEOSGeometry
from django.contrib.gis.measure import (
Area as AreaMeasure, Distance as DistanceMeasure,
)
@@ -91,16 +90,9 @@ class GeomValue(Value):
class GeoFuncWithGeoParam(GeoFunc):
def __init__(self, expression, geom, *expressions, **extra):
- if not hasattr(geom, 'srid'):
- # Try to interpret it as a geometry input
- try:
- geom = GEOSGeometry(geom)
- except Exception:
- raise ValueError("This function requires a geometric parameter.")
- if not geom.srid:
+ if not hasattr(geom, 'srid') or not geom.srid:
raise ValueError("Please provide a geometry attribute with a defined SRID.")
- geom = GeomValue(geom)
- super(GeoFuncWithGeoParam, self).__init__(expression, geom, *expressions, **extra)
+ super(GeoFuncWithGeoParam, self).__init__(expression, GeomValue(geom), *expressions, **extra)
class SQLiteDecimalToFloatMixin(object):
diff --git a/tests/gis_tests/distapp/tests.py b/tests/gis_tests/distapp/tests.py
index 56e4711ab7..ef9cc65a2e 100644
--- a/tests/gis_tests/distapp/tests.py
+++ b/tests/gis_tests/distapp/tests.py
@@ -492,9 +492,7 @@ class DistanceFunctionsTests(TestCase):
dist_qs = [dist1]
else:
dist2 = SouthTexasCityFt.objects.annotate(distance=Distance('point', lagrange)).order_by('id')
- # Using EWKT string parameter.
- dist3 = SouthTexasCityFt.objects.annotate(distance=Distance('point', lagrange.ewkt)).order_by('id')
- dist_qs = [dist1, dist2, dist3]
+ dist_qs = [dist1, dist2]
# Original query done on PostGIS, have to adjust AlmostEqual tolerance
# for Oracle.