Refs #17635 -- Tested the Cast function in a geography to geometry context

Thanks Tim Graham for the review.
This commit is contained in:
Claude Paroz 2016-04-10 19:55:29 +02:00
parent 1c30a6473d
commit 1ee9c5b4a9
2 changed files with 30 additions and 0 deletions

View file

@ -235,6 +235,18 @@ available for geography columns:
* :lookup:`covers`
* :lookup:`intersects`
If you need to use a spatial lookup or aggregate that doesn't support the
geography type as input, you can use the
:class:`~django.db.models.functions.Cast` database function to convert the
geography column to a geometry type in the query::
from django.contrib.gis.db.models import PointField
from django.db.models.functions import Cast
Zipcode.objects.annotate(
geom=Cast('geography_field', PointField())
).filter(geom__within=poly)
For more information, the PostGIS documentation contains a helpful section on
determining `when to use geography data type over geometry data type
<http://postgis.net/docs/manual-2.1/using_postgis_dbmanagement.html#PostGIS_GeographyVSGeometry>`_.