【发布时间】:2016-08-12 09:53:27
【问题描述】:
我正在尝试使用 Django 为后端和 React 为前端绘制一个矩形。一些第三方将使用 JSON 格式的 4 个坐标点 (x,y) 访问我的 API,然后我通过 React 画线。我应该保留一个名为 Rectangle 的模型,其中包含 8 个字段 {(x1,y1),(x2,y2),(x3,y3),(x4,y4)} 还是应该保留 2 个模型,例如:
class Rectangle(models.Model):
name = models.CharField(max_length=10)
def __str__(self):
return self.name
class Point(models.Model):
rectangle = models.ForeignKey(Rectangle, on_delete = models.CASCADE)
x1 = models.FloatField()
y1 = models.FloatField()
def __str__(self):
return '{} , {}'.format(self.x1, self.y1, self.x2, self.y2)
如果我保留 2 个模型,那么编写序列化程序和基于类的视图来处理提供的数据会有点复杂。我应该怎么办?有什么建议吗?
【问题讨论】:
-
如果您确定模型总是有 4 个点 — 我建议使用一个模型,包含 4 个点坐标。点模型通过 FK 连接到形状模型的方式也很酷,因为您可以轻松获得所需的点数。
-
你会以某种方式索引点数据吗?或者做任何空间查询?如果没有,一切都可以简单地存储为 JSON 数据。恕我直言,将点存储到单个表是一种开销。
-
感谢您的建议..
标签: python django django-models django-rest-framework