Я понимаю, что это ярлык, и он может быть неоптимальным, но рассматривали ли вы возможность объединения двух выбранных виджетов в один, используя optgroups?Это избавит вас от написания собственного javascript.
Поскольку это ForeignKey, если они выбирают порт, вы знаете, что это за коммутатор.Вы можете сделать переключатели оптгруппами со значением «», чтобы они не могли сохранить после выбора только переключателя.Вот шаги, которые я вижу:
- Настройте поля формы, чтобы пропустить
switch
. - Измените заголовок поля формы
port
на Switch / Port. - Измените
choices
поля формы port
на кортеж, сгенерированный из коммутаторов / портов. - Добавьте пользовательское представление для сохранения, которое получает коммутатор отпорт и устанавливает на него переключатель пользователя.
Если пользователи / заинтересованные стороны сочтут это приемлемым, это способ обойти программирование на JavaScript, которое включает в себя немало программирования на Django.