Как отключить радиокнопку django forms в зависимости от значения радиокнопки anotehr

У меня есть форма Django с двумя наборами радиокнопок. Я хотел бы блокировать два варианта выбора во втором наборе в зависимости от выбранной кнопки в первом наборе.

Как я могу это сделать? Нужно ли мне написать для этого функцию в представлениях?

forms.py

DOWNLOAD_CHOICES = [("all", "All values"), 
("all_divide", "All values separated per IfcType"),
("unique", "Unique values"), 
("unique_divide", "Unique values separated per IfcType")]


FORMAT_CHOICES = [("xlsx", "Excel (.xlsx)"),
    ("csv", "comma-separated values (.csv)")]

class DownloadForm(forms.Form):
    file_format = forms.ChoiceField(choices=FORMAT_CHOICES, widget=forms.RadioSelect())
    file_download = forms.ChoiceField(choices=DOWNLOAD_CHOICES, widget=forms.RadioSelect())

model_form_download.html

<form action="" name="" method="POST">
  {% csrf_token %}
  {{ form.as_p }}
  <input type="submit" value="Download">
 </form>

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

Вам необходимо использовать Javascript. Например, используя jQuery:

function setOptions() {
    if ($("input[name=file_download][value=unique]").prop('checked')) {
      $("input[name=file_format][value=csv]").prop('disabled', true);
    } else {
      $("input[name=file_format][value=csv]").prop('disabled', false);
};

$('input[name="file_download"]').change(function () {
    setOptions();
};

setOptions();
Вернуться на верх