Как смоделировать матричный стол в Django - PullRequest
0 голосов
/ 10 июля 2019

Моделирование этой простой таблицы в 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 голосов
/ 12 июля 2019

Предполагая, что у вас есть другая модель, которая определяет, какие записи могут отображаться в виде строк / столбцов в матрице:

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

Вместо представления матрицы в виде квадрата вы также можете развернуть ее и представитьэто пары меток вместе со значением ячейки.

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