Fixed #22250 -- regression in gis compiler for non-concrete fields
Thanks to gwahl@fusionbox.com for the report.
This commit is contained in:
parent
5e4e0b6fe9
commit
21f208e66e
|
@ -124,7 +124,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
|
||||
|
|
|
@ -794,3 +794,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
|
||||
|
|
Loading…
Reference in New Issue