首页 > 解决方案 > 如何在 Django 中为矩阵表建模

问题描述

在 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 模型中建模这种关系方法是什么?

标签: pythondjangodatabase-design

解决方案


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

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()

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


推荐阅读