Commit 5f7035ce authored by Sergey Fedoseev's avatar Sergey Fedoseev Committed by Claude Paroz
Browse files

Fixed #25673 -- Made `GeometryField.from_db_value` set SRID

parent f98126a0
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -257,8 +257,12 @@ class GeometryField(GeoSelectFormatMixin, BaseSpatialField):
            return geom

    def from_db_value(self, value, expression, connection, context):
        if value and not isinstance(value, Geometry):
        if value:
            if not isinstance(value, Geometry):
                value = Geometry(value)
            srid = value.srid
            if not srid and self.srid != -1:
                value.srid = self.srid
        return value

    def get_srid(self, geom):
+4 −0
Original line number Diff line number Diff line
@@ -893,3 +893,7 @@ class GeoQuerySetTest(TestCase):
    def test_non_concrete_field(self):
        NonConcreteModel.objects.create(point=Point(0, 0), name='name')
        list(NonConcreteModel.objects.all())

    def test_values_srid(self):
        for c, v in zip(City.objects.all(), City.objects.values()):
            self.assertEqual(c.point.srid, v['point'].srid)