Commit 21f208e6 authored by Anssi Kääriäinen's avatar Anssi Kääriäinen
Browse files

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

Thanks to gwahl@fusionbox.com for the report.
parent 5e4e0b6f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+9 −0
Original line number Diff line number Diff line
@@ -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