Заставьте поле 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, а затем на основе условий вы можете отображать различные формы. Это не будет эффективным способом.

Вернуться на верх