diff --git a/django/contrib/gis/geoip2/base.py b/django/contrib/gis/geoip2/base.py index e74984fe45..14478942c0 100644 --- a/django/contrib/gis/geoip2/base.py +++ b/django/contrib/gis/geoip2/base.py @@ -3,7 +3,6 @@ import socket import geoip2.database from django.conf import settings -from django.contrib.gis.geos import Point from django.core.exceptions import ValidationError from django.core.validators import validate_ipv46_address from django.utils._os import to_path @@ -219,6 +218,9 @@ class GeoIP2: "Return a GEOS Point object for the given query." ll = self.lon_lat(query) if ll: + # Allows importing and using GeoIP2() when GEOS is not installed. + from django.contrib.gis.geos import Point + return Point(ll, srid=4326) else: return None diff --git a/docs/releases/4.1.1.txt b/docs/releases/4.1.1.txt index ff4085746d..67b0898e0e 100644 --- a/docs/releases/4.1.1.txt +++ b/docs/releases/4.1.1.txt @@ -9,4 +9,5 @@ Django 4.1.1 fixes several bugs in 4.1. Bugfixes ======== -* ... +* Reallowed, following a regression in Django 4.1, using ``GeoIP2()`` when GEOS + is not installed (:ticket:`33886`).