diff options
| author | Tim Graham <timograham@gmail.com> | 2025-06-05 16:18:56 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-05 22:18:56 +0200 |
| commit | cf1a80fc2d19f359744a20bb6cb1f0a169ef506b (patch) | |
| tree | 25e40d62be4a050fcba26bdddc3eae41313190fd /django/contrib/gis | |
| parent | f0a87895ffaf6532a22143b5e2e304c59b7958ae (diff) | |
Added validation to BaseSpatialFeatures.has_<Func>_function.
Diffstat (limited to 'django/contrib/gis')
| -rw-r--r-- | django/contrib/gis/db/backends/base/features.py | 8 | ||||
| -rw-r--r-- | django/contrib/gis/db/backends/base/operations.py | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/django/contrib/gis/db/backends/base/features.py b/django/contrib/gis/db/backends/base/features.py index cc4ce1046b..22c90a1714 100644 --- a/django/contrib/gis/db/backends/base/features.py +++ b/django/contrib/gis/db/backends/base/features.py @@ -2,6 +2,8 @@ import re from django.contrib.gis.db import models +from .operations import BaseSpatialOperations + class BaseSpatialFeatures: gis_enabled = True @@ -107,5 +109,11 @@ class BaseSpatialFeatures: m = re.match(r"has_(\w*)_function$", name) if m: func_name = m[1] + if func_name not in BaseSpatialOperations.unsupported_functions: + raise ValueError( + f"DatabaseFeatures.has_{func_name}_function isn't valid. " + f'Is "{func_name}" missing from ' + "BaseSpatialOperations.unsupported_functions?" + ) return func_name not in self.connection.ops.unsupported_functions raise AttributeError diff --git a/django/contrib/gis/db/backends/base/operations.py b/django/contrib/gis/db/backends/base/operations.py index e97e694d1d..8351e71fbd 100644 --- a/django/contrib/gis/db/backends/base/operations.py +++ b/django/contrib/gis/db/backends/base/operations.py @@ -39,13 +39,17 @@ class BaseSpatialOperations: "AsGML", "AsKML", "AsSVG", + "AsWKB", + "AsWKT", "Azimuth", "BoundingCircle", "Centroid", "ClosestPoint", "Difference", "Distance", + "DistanceSpheroid", "Envelope", + "ForcePolygonCW", "FromWKB", "FromWKT", "GeoHash", |
