У меня есть следующие модели
class Layer(models.Model):
pass
class Geometry(models.Model):
layer = models.OneToOneField(Layer)
class Circle(Geometry):
radius = models.CharField(max_length=255)
class Rectangle(Geometry):
height = models.CharField(max_length=255)
width = models.CharField(max_length=255)
Слой имеет взаимно-однозначное отношение с геометрией, которое должно быть либо кругом, либо прямоугольником, либо одним из 10 других дочерних элементов геометрии.
Я легко могу определить, какую геометрию имеет слой в данный момент, выполнив layer.geometry, но я не знаю простого способа проверить, какой из дочерних элементов геометрии это. Я могу проверить, существует ли layer.geometry.circle, и выполнить эту проверку для всех полей, но я ищу более простой способ получить потомство, так как это отношение один к одному, я предполагаю, что Django обеспечивает лучший способ доступа к этому.
Заранее спасибо!