Как можно получить дочерний объект модели от родителя в Django? - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть следующие модели

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 обеспечивает лучший способ доступа к этому.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...