【发布时间】:2020-02-15 23:08:13
【问题描述】:
我是 Django 框架的新手,在我的项目中我有一个名为 Layer 的模型。
class Layer(models.Model):
name = models.CharField(max_length=255)
我希望层与称为“几何”的抽象模型建立关系,更具体地说,一层应该有一个或没有几何,一个几何应该由一层拥有。
问题是我有几何类型,它们都有不同的属性,所以我决定创建多个几何:
class Circle(models.Model):
radius = models.CharField(max_length=255)
class Rectangle(models.Model):
height = models.CharField(max_length=255)
width = models.CharField(max_length=255)
我想要一个数据结构,其中两个模型属于同一类型(几何)。我想调用 layer.geometry 并能够得到一个圆形或一个矩形,或者一个十字形等等。那可能吗?数据库的形状将如何? Django 是要创建两个不同的表还是一个具有合并属性的表?
提前致谢
【问题讨论】:
-
您不能与 abstract 模型建立关系。您可以对它进行子类化,但模型仍然有一个表。应该这样做以引入
FOREIGN KEY约束以防止引用不存在的约束。
标签: django django-models django-rest-framework