Фильтр 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