Фильтр Django Form ModelMultipleChoiceField Запрос, установленный внешним ключом модели

Я создаю неупорядоченный список с помощью формы ModelMultipleChoiceField, где я назначаю все модели "Страна" параметру queryset полей формы. У меня также есть другой ModelMultipleChoiceField в форме, который представляет другую модель CountryRegion, которая имеет внешний ключ к модели Country.

При наведении указателя мыши на один из элементов списка рядом с элементом списка появляется другой неупорядоченный список со всеми регионами, запрашиваемыми областью формы MultipleChoiceField. Прямо сейчас он показывает все регионы в моей базе данных для каждого элемента списка, 1 элемент списка для каждой страны, над которым я наведу курсор. Поскольку неупорядоченный список регионов вложен в неупорядоченный список стран, возможно ли каким-либо образом передать текущую находящуюся в стране страну в качестве параметра в "form.region.field.choices", чтобы получить регионы только для этой страны?

HTML

<ul class="categories_children hidden-drilldown">
    {% for value, text in form.country.field.choices %}
        <li class="sub-item country" data-expid="{{ value }}">
            <label class="mentor-preference-choice">
                <input name="country" type="checkbox" value="{{ value }}">
                {{ text }}
                <a class="menu-arrow country-arrow"></a>
            </label>

            <ul class="categories_children hidden-drilldown">
                {% for value, text in form.region.field.choices %}
                    <li class="sub-item country" data-expid="{{ value }}">
                        <label class="mentor-preference-choice">
                            <input name="country" type="checkbox"
                                   value="{{ value }}">
                            {{ text }}
                            <a class="menu-arrow country-arrow"></a>
                        </label>
                    </li>
                {% endfor %}
            </ul>
        </li>
    {% endfor %}
</ul>

форма

class MentorSearchForm(forms.Form):
    expertise = forms.ModelMultipleChoiceField(queryset=Expertise.objects.all(), widget=forms.CheckboxSelectMultiple(), required=False, label=_('Expertise'))
    language = forms.ModelMultipleChoiceField(queryset=Language.objects.all(), widget=forms.CheckboxSelectMultiple(), required=False, label=_('Language'))
    comm_medium = forms.ModelMultipleChoiceField(queryset=FormOfCommunication.objects.all(), widget=forms.CheckboxSelectMultiple(), required=False, label=_('Comm_medium'))
    country = forms.ModelMultipleChoiceField(queryset=ActiveCountry.objects.all(), widget=forms.CheckboxSelectMultiple(), required=False, label=_('Active_country'))
    region = forms.ModelMultipleChoiceField(queryset=CountryRegion.objects.all(), widget=forms.CheckboxSelectMultiple(), required=False, label=_('Country_region'))

    search_query = forms.CharField(max_length=200, required=False, min_length=3, label=_('Search'))

    def __init__(self, request=None, *args, **kwargs):
        kwargs.setdefault('label_suffix', '')
        super(MentorSearchForm, self).__init__(*args, **kwargs)
        try:
            self.fields['media_type'].widget.choices.remove(('series', _('Series')))
        except (KeyError, ValueError):
            pass

    def clean(self):
        cleaned_data = self.cleaned_data

        if 'search_query' in cleaned_data:
            cleaned_data['search_query'] = cleaned_data['search_query'].strip()

        return cleaned_data

0 ответов

Другие вопросы по тегам