Заставьте поле select переключать другое поле с помощью Django Forms БЕЗ jQuery
<Для создания показанного эффекта я использую jQuery и некоторый код Django для начинающих:
<div class="col-md-5">
<label>Division </label>
<select id="division" name="division" class="form-control select2">
{%for division, name in divisions%}
<option value="{{ division }}">{{ name }}</option>
{% endfor %}
</select>
</div>
<div class="col">
<h3><strong>OR</strong></h3>
</div>
<div class="col-md-5">
<label>Center</label>
<select id="center" name="center" class="form-control select2">
{%for center, name in centers%}
<option value="{{ center }}">{{ name }}</option>
{% endfor %}
</select>
</div>
$(document).ready(function () {
// Set option selected onchange
$("#center").change(function () {
// Set selected
if ($("#division").val() != "None" && $("#center").val() != "None") {
$("#division").val("None");
$("#division").select2().trigger("change");
}
return;
});
$("#division").change(function () {
// Set selected
if ($("#division").val() != "None" && $("#center").val() != "None") {
$("#center").val("None");
$("#center").select2().trigger("change");
}
return;
});
});
Однако остальные мои поля объявлены с помощью django forms:
class NewTitlesForm07(forms.Form):
def __init__(self, *args, **kwargs):
super(NewTitlesForm07, self).__init__(*args, **kwargs)
self.fields['start_month'] = forms.ChoiceField(choices=MONTH_CHOICES, widget=forms.Select(attrs={'class': 'select2 form-control'}))
self.fields['start_year'] = forms.ChoiceField(choices=YEAR_CHOICES_07, widget=forms.Select(attrs={'class': 'select2 form-control'}))
self.fields['end_month'] = forms.ChoiceField(choices=MONTH_CHOICES, widget=forms.Select(attrs={'class': 'select2 form-control'}))
self.fields['end_month'].help_text = '**Please note that the end date is the last day of the month.'
self.fields['end_year'] = forms.ChoiceField(choices=YEAR_CHOICES_07, widget=forms.Select(attrs={'class': 'select2 form-control'}))
То, что вы используете - это front-end, а Django - это, по сути, back-end. Конечно, вы используете Django и jinja2 для рендеринга шаблона, но для такой функции, как эта, лучше использовать javascript или jquery. Даже если вы захотите использовать Django, это будет сложный способ, и все равно потребуется javascript/jquery (для функциональности клика) для отправки данных формы снова и снова на back-end, а затем на основе условий вы можете отображать различные формы. Это не будет эффективным способом.