Отношения ManyToMany в django
На данный момент стоит задача: Из excel файла перенести все данные и методы расчёта. Дело в том, что файл excel использовался многие годы, под него писались макросы, и другие условия на листах. Требование руководства сохранить структуру данных. На данный момент идёт ступор, что делать с таблицами и как их связать.
пока на данный момент, первостепенная задача, с листа перенести значения в бд и разделить информацию на разные таблицы, чтобы потом выводить эту информацию на сайт в качестве "select"
Зеленным обведены таблицы. Красным то, что выбирается.
Мы тут видим 3 таблицы. 1 главная, 2 имеет зависимость в выборе от 1. 3 таблица имеет зависимость в выборе от 1 и от 2.
Для примера. Если в "select"1 я выбираю UVS. То, в "select"2 мне должно быть доступно только FR и EI и так далее.
Т.к требование стоит не менять набор данных в этих таблицах, то выход я вижу в отношении МногиеКоМногим.
Создал 2 модели для двух 2 таблиц:
class ANameKan(models.Model):
NameKan = models.CharField(max_length=10, unique=True, verbose_name='Наименование(NameKan)')
LimitKan = models.BooleanField(null=False, blank=True, verbose_name='Условие(LimitKan)')
def __str__(self):
return self.NameKan
class Meta:
verbose_name = 'Клапан'
verbose_name_plural = 'Клапана'
ordering = ['id']
class AIspKan(models.Model):
IspKan = models.CharField(max_length=10, unique=True, verbose_name='Исполнение(IspKan)')
LimitIsp = models.ManyToManyField(ANameKan, verbose_name='Условие
клапана(LimitIsp)',blank=True)
def __str__(self):
return self.IspKan
class Meta:
verbose_name = 'Исполнение'
verbose_name_plural = 'Исполнения'
ordering = ['id']
Далее в admin.py добавил показ этих таблиц, прописал там же формулы для полей manytomany и в админке всё хорошо отображается, добавляется, удаляется и удобно выбирать сразу несколько полей.
Но проблема возникает в том, как с этим взаимодействовать на стороне пользователя. Все уроки ajax на ютубе по "select" опираются на модель взаимодействия ОдинКоМногим и авторы никогда не применяют модель МногиеКоМногим.
Если кто-то может помочь информацией где такие уроки искать- поделитесь пожалуйста.
Что мне необходимо: на странице 10 "select", каждый "select" относится к отдельной таблице, каждая таблица связана с одной или несколькими таблицами через manytomany. Необходимо чтобы при выборе одного из "select", связанный с ним(с табличкой) другой "select" мог давать пользователям выбрать только те значения, которые позволяется выбрать связь. Требования руководства:
- Должна быть связь между таблицами
- Содержимое таблиц нельзя изменять (т.е то, что показано на скриншоте должно быть нетронутым).