如何在Django中为矩阵表建模

时间:2019-07-10 11:59:38

标签: python django database-design

在Django ORM中为这个简单的表建模已经困扰了我一段时间。我想要的输出如下所示。

                item_a  item_b  item_d  item_d 
-----------------------------------------------
item_a            0       2       4      2.2
item_b            1       0       3.5    0.3
item_c            2       4       0      2
item_d            3.2     1       1      0

我的要求:

  • 项目之间的关系是类似于上面的矩阵表。
  • 上表的每一行都可以编辑。
  • 还必须添加新项目。

我遇到的最接近的事情是使用manytomany关系。但是在这种模型中,我的商品与自己之间存在某种关系,这使我感到困惑。

在Django模型中为这种关系建模的 方法是什么?

1 个答案:

答案 0 :(得分:0)

假设您有另一个模型,该模型定义哪些条目可以显示为矩阵中的行/列:

class Items(models.Model):
    name = models.TextField()

class DependencyRatio(models.Model):
    col = models.ForeignKey(Items, related_name='column_item')
    row = models.ForeignKey(Items, related_name='row_item')
    value = models.FloatField()

除了将矩阵表示为正方形之外,您还可以展开矩阵并将其与标签值以及单元格值一起表示。