Настроить форму django c зависимыми друг от друга полями

800 руб.за час • безналичный расчёт, электронные деньги
23 марта 2018, 11:44 • 6 откликов • 69 просмотров
Создать чистый проект Django.
Models:
  • В проекте будут модели Модель1, Модель2, Модель3, Модель4, Модель5, Модель6,
  • Модель2 ссылается через Foreignkey(required=false) на Модель1,
  • Модель3 ссылается через Foreignkey(required=false) на Модель2,
  • Модель4 ссылается через Foreignkey(required=false) на Модель2, Модель1, Модель3
  • Модель5 сама по себе. возможные значения - одна из букв алфавита.
  • Model6 контейнер всех предыдущих моделей.

View:
index:
Выдает форму и результат отправки предыдущей формы.
get_new_list:
Выдает новый список значений для работы формы

Forms
В форме модели6 все поля - select
в настройках формы есть указание зависимостей.
dependencies = {'model4':(model1, model2, model3), 'model2' : (model3), 'model5':(model3), } , если хотите - это может быть любым итерируемым обьектом, не только словарем

dependencies должно быть учтено в работе формы, в данном случае:
если я меняю значение поля model4 должны поменяться списки model1, model2, model3 и возможно их значения. Запоминать старые значения не надо.
если я меняю значение поля model2 должен поменяться список model3, возможно что значение изменится, если оно не в списке. Запоминать старое значение не надо.
и т.д.

При изменении - новы значения списков должны быть сформированы в процедуре запроса-получения данных с сервера: get_new_list, эта процедура должна быть защищена стандартными методами Django от несанкционированных обращений.

В настройке формы должна быть возможность выбора, как выполняются запросы на получение новых значений списков: синхронно или асинхронно.
Если вы не умеете работать с абстрактными моделями, во вложении картинка готового примера из жизни. Картинка исправленная, а то многим было непонятно:
  • есть модель страна
  • есть модель регион(не совпадает с географическими), он ссылается на страну,
  • есть модель область(не совпадает с географическими), она ссылается на регион,
  • есть модель классификация, она всегда ссылается на страну, иногда на регион, иногда на область.
  • Есть модель характер (легкий, средний жесткач).
  • Есть модель тип(белый красный оранжевый желтый розовый коричневый).

Выбор характера уменьшает выборку списка стран.
Выбор Типа ограничивает выборку списка регионов или списка областей.

Требуемый результат: Работаюший проект Django (модели, форма, вью, скрипты, шаблоны и т.п.)
Или
Другой вариант решения работы с зависимыми полями формы с получением данных онлайн.

разумные комментарии приветствуются. Доработка не требуется. Прошу не предлагать решения с батарейками autocomplete, geodjango, mptt

Оплата после подтверждения работы скрипта на сервере исполнителя или моем.
Цель проекта - тестовое задание для поиска исполнителя на больший проект.
Я сам на выполнение этого задания потратил 4,5 часа. скрипт был взят с stackowerflow

Файлы