Зависимый выпадающий фильтр работает не так, как ожидалось
У меня есть зависимый выпадающий фильтр. Проблема, с которой я сталкиваюсь, заключается в том, что после фильтрации второй параметр фильтра очищается и нужно выбрать другой вариант, а затем повторно выбрать первый вариант, чтобы изменить второй параметр
До фильтрации:
После фильтрации:
Я полагаю, что это происходит потому, что jQuery не срабатывает снова. Возможно ли заставить jQuery сработать снова после того, как он был отфильтрован и список уже имеет первый параметр? Я новичок в jQuery, поэтому мне трудно с ним справиться
фильтр:
class CarFilterForm(forms.Form):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['model'].queryset = Post.objects.none()
self.fields['manufacture'].empty_label = 'Make'
self.fields['model'].empty_label = 'Model'
if 'model_manufacture_id' in self.data:
try:
model_manufacture_id = int(self.data.get('model_manufacture_id'))
self.fields['model_id'].queryset = CarModels.objects.filter(model_manufacture_id=model_manufacture_id)
except (ValueError, TypeError):
pass
class carFilter(django_filters.FilterSet):
class Meta:
model = Post
fields = 'manufacture', 'model'
form = CarFilterForm
template:
<form method="get" id="AllCarsForm" data-cars-url="{% url 'ajax-allcars' %}">
{% render_field myFilter.form.manufacture class="cars-filter-widget" %} {% render_field myFilter.form.model class="cars-filter-widget" %}
<button class="btn btn-primary" type="submit">Search</button>
</form>
<script>
$("#id_manufacture").change(function () {
var url = $("#AllCarsForm").attr("data-cars-url");
var manufactureid = $(this).val();
$.ajax({
url: url,
data: {
model_manufacture: manufactureid,
},
success: function (data) {
$("#id_model").html(data);
},
});
});
</script>