mirror of
https://github.com/django/django.git
synced 2025-06-18 01:49:14 +00:00
Swapped to an allow list instead of a deny list for field types to determine if the UNNEST optimization can be enabled to avoid further surprises with other types that would require further specialization to adapt. Regression in a16eedcf9c69d8a11d94cac1811018c5b996d491. Thanks Joshua Goodwin for the report and Sarah Boyce for the test. Backport of 764af7a3d6c0b543dcf659a2c327f214da768fe4 from main
76 lines
1.5 KiB
Python
76 lines
1.5 KiB
Python
from django.contrib.gis.db import models
|
|
|
|
|
|
class NamedModel(models.Model):
|
|
name = models.CharField(max_length=30)
|
|
|
|
class Meta:
|
|
abstract = True
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class City3D(NamedModel):
|
|
point = models.PointField(dim=3)
|
|
pointg = models.PointField(dim=3, geography=True)
|
|
|
|
class Meta:
|
|
required_db_features = {"supports_3d_storage"}
|
|
|
|
|
|
class Interstate2D(NamedModel):
|
|
line = models.LineStringField(srid=4269)
|
|
|
|
|
|
class Interstate3D(NamedModel):
|
|
line = models.LineStringField(dim=3, srid=4269)
|
|
|
|
class Meta:
|
|
required_db_features = {"supports_3d_storage"}
|
|
|
|
|
|
class InterstateProj2D(NamedModel):
|
|
line = models.LineStringField(srid=32140)
|
|
|
|
|
|
class InterstateProj3D(NamedModel):
|
|
line = models.LineStringField(dim=3, srid=32140)
|
|
|
|
class Meta:
|
|
required_db_features = {"supports_3d_storage"}
|
|
|
|
|
|
class Polygon2D(NamedModel):
|
|
poly = models.PolygonField(srid=32140)
|
|
|
|
|
|
class Polygon3D(NamedModel):
|
|
poly = models.PolygonField(dim=3, srid=32140)
|
|
|
|
class Meta:
|
|
required_db_features = {"supports_3d_storage"}
|
|
|
|
|
|
class SimpleModel(models.Model):
|
|
class Meta:
|
|
abstract = True
|
|
|
|
|
|
class Point2D(SimpleModel):
|
|
point = models.PointField(null=True)
|
|
|
|
|
|
class Point3D(SimpleModel):
|
|
point = models.PointField(dim=3)
|
|
|
|
class Meta:
|
|
required_db_features = {"supports_3d_storage"}
|
|
|
|
|
|
class MultiPoint3D(SimpleModel):
|
|
mpoint = models.MultiPointField(dim=3)
|
|
|
|
class Meta:
|
|
required_db_features = {"supports_3d_storage"}
|