Я создаю приложение Django, которое извлекает данные из базы данных на основе формы. Форма представляет собой просто набор контрольных списков. Затем эти данные используются для создания графика с использованием Bokeh.
Приложение работает. То есть, когда нажата кнопка отправки, приложение принимает пользовательский ввод, собирает соответствующие данные и строит график. Моя проблема в том, что я хочу, чтобы форма была отправлена один раз, как только страница загрузится, чтобы отобразить график с настройками по умолчанию. Текущее поведение таково, что график не отображается, пока пользователь не нажмет кнопку отправки.
Вот абстрактный пример того, что своего рода воспроизводит мою проблему. Пожалуйста, обратите внимание, что моя проблема не совсем воспроизводится этим примером, потому что моя неопытность с html / javascript затрудняет сделать html / javascript эквивалентом того, что делает Django. Однако вот попытка. Просто имейте в виду, что график должен создаваться динамически при нажатии кнопки - какой график отображается, зависит от ввода пользователя.
<div id='form-container'>
<form action='.' name='ctrl-panel' method='post' class='form-check-inline'>
<ul>
<li>
<label id="label1">
<input id='label1' type='checkbox' name='checkbox1' value='A' checked='checked'>Checkbox 1
</label>
</li>
<li>
<label id="label2">
<input id='label2' type='checkbox' name='checkbox2' value='A'>Checkbox 2
</label>
</li>
</ul>
</form>
<input type="submit" value="Submit" class="btn" id="submit-btn" form="ctrl-panel">
</div>
<script>
window.onload = function clickBtnOnWindowLoad() {
var btn = document.getElementById('submit-btn');
btn.click();
}
</script>
Проблема в том, что action
в форме настроено на текущую страницу .
, и код javascript запускается при загрузке страницы. Поэтому я получаю рекурсивную активацию кнопки отправки, так как кнопка отправки загружает текущую страницу, а при загрузке текущей страницы нажимается кнопка отправки.
Есть ли у кого-нибудь совет, чтобы я мог отправить форму один раз и только один раз с настройками по умолчанию при загрузке страницы.