Как отфильтровать поле форм Django на основе значений, выбранных в другом поле? - PullRequest
0 голосов
/ 05 августа 2020

У меня очень простая форма Django:

from django import forms
from django_select2.forms import Select2MultipleWidget


class MyForm(forms.Form):
    countries = forms.MultipleChoiceField(widget=Select2MultipleWidget)
    cities = forms.MultipleChoiceField(widget=Select2MultipleWidget)

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields["countries"].choices = self.get_countries()

    def get_countries(self):
        # returns list of countries based on some factors

    def get_cities(self):
        # returns list of cities based on the selected countries

Я хотел бы указать варианты поля cities на основе выбора пользователя в поле countries. Конечно, я хочу избежать нажатия кнопки и перезагрузки всей страницы, поэтому я предполагаю, что потребуется использование JS / Ajax.

Я нашел несколько решений, но все они предназначены для Django Формы моделей. Есть идеи, как решить эту проблему?

...