summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnssi Kääriäinen <akaariai@gmail.com>2014-03-29 07:58:25 +0200
committerAnssi Kääriäinen <akaariai@gmail.com>2014-03-29 08:29:38 +0200
commit31892af3f03fa75dd59a2f70beebb29993098778 (patch)
treeb6d8a9a10142f496b55b2c48352db397c276ae61
parentf659c8e13aa5691f7460131c84b283ed4fe990bf (diff)
[1.6.x] Fixed #22250 -- regression in gis compiler for non-concrete fields
Thanks to gwahl@fusionbox.com for the report. Backport of 21f208e66e from master
-rw-r--r--django/contrib/gis/db/models/sql/compiler.py2
-rw-r--r--django/contrib/gis/tests/geoapp/tests.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/django/contrib/gis/db/models/sql/compiler.py b/django/contrib/gis/db/models/sql/compiler.py
index 7b5a309916..3fc9c17270 100644
--- a/django/contrib/gis/db/models/sql/compiler.py
+++ b/django/contrib/gis/db/models/sql/compiler.py
@@ -123,7 +123,7 @@ class GeoSQLCompiler(compiler.SQLCompiler):
seen = self.query.included_inherited_models.copy()
if start_alias:
seen[None] = start_alias
- for field, model in opts.get_fields_with_model():
+ for field, model in opts.get_concrete_fields_with_model():
if from_parent and model is not None and issubclass(from_parent, model):
# Avoid loading data for already loaded parents.
continue
diff --git a/django/contrib/gis/tests/geoapp/tests.py b/django/contrib/gis/tests/geoapp/tests.py
index f6de0670c7..617d92b368 100644
--- a/django/contrib/gis/tests/geoapp/tests.py
+++ b/django/contrib/gis/tests/geoapp/tests.py
@@ -777,3 +777,12 @@ class GeoQuerySetTest(TestCase):
self.assertEqual(True, union.equals_exact(u2, tol))
qs = City.objects.filter(name='NotACity')
self.assertEqual(None, qs.unionagg(field_name='point'))
+
+ def test_non_concrete_field(self):
+ pkfield = City._meta.get_field_by_name('id')[0]
+ orig_pkfield_col = pkfield.column
+ pkfield.column = None
+ try:
+ list(City.objects.all())
+ finally:
+ pkfield.column = orig_pkfield_col