Ваш код Python выполняется на сервере (который включает в себя шаблонизатор). Таким образом, он будет отвечать только на запросы. Проще говоря, ваш браузер отправляет запрос на сервер, он выполняет ваш код Python и отвечает обработанным шаблоном, который отобразит ваш браузер.
Нажатие на эту кнопку только изменяет DOM в вашем браузере, на сервер не будет отправляться запрос, и ваш код Python (включая шаблонизатор), таким образом, никогда не будет выполнен.
Теперь, если вы не хотите перезагружать всю страницу, вам придется прибегнуть к Javascript. Присоедините обработчик событий к первому флажку и измените DOM соответственно, чтобы отобразить или скрыть второй флажок.
Обратите внимание, что вы все равно должны проверять данные, которые вы получаете из своей формы, поскольку Javascript выполняется на стороне клиента и поэтому никогда не должен быть доверенным.
Изменить, чтобы немного подробнее рассмотреть JS-часть
Прежде всего, обратите внимание, что это другая проблема, и если вы застряли при написании своей части JS, вам просто нужно задать новый вопрос.
Однако, поскольку это в некоторой степени связано с вопросом, приведу пример кода JS, иллюстрирующий то, о чем я думал.
var first = document.getElementById('first');
first.addEventListener('click', function() {
var divElem = document.getElementById('toggle');
if (this.checked){
divElem.style.display = 'block';
}
else {
divElem.style.display = 'none';
}
});
.hidden {
display: none;
}
<input type="checkbox" id="first"><span>First</span><br>
<div id="toggle" class="hidden">
<input type="checkbox" id="second"><span>Second</span>
</div>
JSFiddle: http://jsfiddle.net/36as9Lh1/
Обратите внимание, что это очень простой пример, и его, скорее всего, следует расширить для вашего конкретного случая использования. Например, в настоящее время давайте установим первый флажок, установите второй флажок, а затем снова снимем первый флажок, в результате чего второй флажок будет проверен, когда ему не разрешено.