Фильтрация параметров HTML-формы на основе предыдущего ввода

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

Я разрабатываю сайт django, который включает в себя базу данных прецедентов. Я хочу, чтобы определенные пользователи могли загружать новые решения, используя общий CreateView и ModelForm, созданный с использованием четких форм. Я хочу сделать это как можно проще для пользователей, удалив ненужные параметры из полей html <option>. Часть формы, которая меня интересует, выглядит примерно так:

<select class="input-xlarge select" id="id_decisions" name="clauses">
    <option value="" selected="selected">---------</option>
    <option value="1">2012 Decisions</option>
    <option value="2">2011 Decisions</option>
    ...
</select>
<select class="input-xlarge select" id="id_clauses" name="clauses">
    <option value="" selected="selected">---------</option>
    <option value="1">2012 clause 1</option>
    <option value="2">2012 clause 2</option>
    <option value="3">2011 clause 1</option>
    ...
</select>

Когда кто-то выбирает 2012 decisions из раскрывающегося списка, я хочу отфильтровать все параметры в поле «предложение», в которых не указано «2012». Я подозреваю, что это означает написание фильтра javascript, аналогичного ответу в этом вопрос, но я не знаю никакого javascript и поэтому не совсем понимаю, что делает этот код. Прежде чем я приступлю к изучению достаточного количества javascript, чтобы убедиться, что я создаю хорошее решение, я просто хочу убедиться, что мои подозрения о том, как это делается, верны. Это? Я упустил очевидный способ сделать это в Python, используя либо Django, либо хрустящие формы?


person cms_mgr    schedule 16.04.2013    source источник


Ответы (1)


Если вы хотите, чтобы раскрывающийся список был отфильтрован без отправки формы и обновления страницы, то единственный способ сделать это — использовать Javascript. Это не ограничение Django: именно так работают веб-приложения.

person Daniel Roseman    schedule 16.04.2013
comment
Спасибо. Я знаю, что это не ограничение Django, я просто надеялся, что есть какой-то встроенный виджет, о котором я не знал, так как годами откладывал изучение javascript. Кажется, пришло время съесть эту конкретную лягушку ;-) - person cms_mgr; 16.04.2013