Сделайте специальное поле, которое частично отправляет форму для дальнейшей обработки - PullRequest
0 голосов
/ 30 мая 2020

Я хочу создать настраиваемое поле формы, например поле поиска адреса. Пользователь вводит частичный адрес и может выбрать из списка предложений. С помощью Javascript мне ясно, как это сделать (сделать несколько Ajax, показать всплывающее окно, вернуть окончательное значение с обычным полем HTML).

Как бы я реализовал такой узор в Django без Javascript? Мне нужно специальное поле, где пользователь может нажать ввод (или нажать кнопку). Этот отправляет форму , но не для окончательной обработки. Вместо этого он вычисляет список предложений и снова отображает форму с предложениями (и другими заполненными данными).

Одно из решений, которое я могу себе представить:

  • Сделайте поле формы возвращает специальное "неполное" значение
  • В представлении откройте форму и проверьте 'addressfield.incomplete'
    • Если true, вычислить список, чтобы поле могло отобразить его и снова показать форму
    • Если false, обработать форму как обычно

Обратной стороной является то, что для этого требуется сотрудничество со стороны представления и, возможно, объекта формы . Таким образом, это усложняет использование, если я хочу упаковать свое поле в приложение. Есть ли санкционированный способ в Django, чтобы такое «поле частичной отправки» было самодостаточным? OTOH, такое поле могло бы быть слишком большим c ...

...