Skip to content
Browse files

Fixed #22250 -- regression in gis compiler for non-concrete fields

Thanks to gwahl@fusionbox.com for the report.
  • Loading branch information...
1 parent 5e4e0b6 commit 21f208e66e6472b8db8cdfd7cd1102d71bb15733 @akaariai akaariai committed
Showing with 10 additions and 1 deletion.
  1. +1 −1 django/contrib/gis/db/models/sql/compiler.py
  2. +9 −0 django/contrib/gis/tests/geoapp/tests.py
View
2 django/contrib/gis/db/models/sql/compiler.py
@@ -124,7 +124,7 @@ def get_default_columns(self, with_aliases=False, col_aliases=None,
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
View
9 django/contrib/gis/tests/geoapp/tests.py
@@ -794,3 +794,12 @@ def test_unionagg(self):
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

0 comments on commit 21f208e

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