Динамическое и зависимое поле множественного выбора в Model Admin, основанное на выборе внешнего ключа - PullRequest
0 голосов
/ 27 мая 2019

У меня есть четыре модели - Компания, Сотрудник, Офис и Проект. Модель компании достаточно независима без внешних ключей. Сотрудник имеет внешний ключ к Компании. Офис имеет внешний ключ для компании

Проект имеет внешний ключ для Компании. Он также имеет CharFields для сотрудников и офисов, но если компания не выбрана, они не заполнены. В общем, мне нужны сотрудники и офисы с несколькими вариантами выбора, связанные только с той компанией, для которой выполняется проект.

В некотором смысле, я могу сделать это путем обновления вариантов self._meta.get_field ('employee').., Но проблема в том, что когда я перехожу к новой записи, выбор не возвращается к исходной статической запись. Они остаются теми же, что были выбраны в предыдущей записи. Это как если бы выбор был неким хранилищем в памяти, которое переносится в новую запись проекта, возможно, на уровне класса.

Это то, что я после:

  1. На экране «Администратор проекта» мы выбираем компанию из поля внешнего ключа «Сохранить и редактировать», и теперь на экране есть два поля с несколькими вариантами выбора для офиса и сотрудников этой компании.

  2. Затем мы можем выбрать один или несколько офисов и одного или нескольких сотрудников компании, которые будут участвовать в этом конкретном проекте.

  3. Сохраняем и выходим.

  4. Когда мы снова возвращаемся к записи, на экране администратора отображаются ранее выбранные офисы и сотрудники, которые отмечены, а остальные не отмечены, что, конечно, может быть обновлено.

Я думаю, что у меня есть большой пробел в моих знаниях здесь.

...