Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Fixed #17448 -- Improved test and documented raw-sql gis query

  • Loading branch information...
1 parent e6e01f6 commit 62e1c5a441d957e44d7527a6d901587b40203a51 @claudep claudep committed
4 django/contrib/gis/tests/geoapp/
@@ -189,7 +189,9 @@ def test_inherited_geofields(self):
def test_raw_sql_query(self):
"Testing raw SQL query."
cities1 = City.objects.all()
- cities2 = City.objects.raw('select * from geoapp_city')
+ # Only PostGIS would support a 'select *' query because of its recognized
+ # HEXEWKB format for geometry fields
+ cities2 = City.objects.raw('select id, name, asText(point) from geoapp_city')
self.assertEqual(len(cities1), len(list(cities2)))
self.assertTrue(isinstance(cities2[0].point, Point))
11 docs/ref/contrib/gis/tutorial.txt
@@ -671,6 +671,17 @@ of abstraction::
+.. admonition:: Raw queries
+ When using :doc:`raw queries </topics/db/sql>`, you should generally wrap
+ your geometry fields with the ``asText()`` SQL function so as the field
+ value will be recognized by GEOS::
+ City.objects.raw('SELECT id, name, asText(point) from myapp_city')
+ This is not absolutely required by PostGIS, but generally you should only
+ use raw queries when you know exactly what you are doing.
Lazy Geometries
Geometries come to GeoDjango in a standardized textual representation. Upon

0 comments on commit 62e1c5a

Please sign in to comment.
Something went wrong with that request. Please try again.