Поскольку я новичок в Django и совершенно не знаю JS / AJAX, я пытаюсь закодировать наиболее простой способ, зависящий от выпадающих списков. Мне удалось заполнить мои выпадающие списки значениями из моей базы данных (data_immo). Теперь мне нужно обновить второй выпадающий список после выбора пользователя в первом.
Вот мой дом. html файл с двумя раскрывающимися списками (регионы и департаменты):
<select name="regions" id="regions">
{% for item in query_results_dict %}
<option value={{ item.nom_reg }}>{{ item.nom_reg }}</option>
{% endfor %}
</select>
<select name="departements" id="departements">
{% for item in departements %}
<option val="{{ item.insee_dep }}"> {{ item.insee_dep }} </option>
{% endfor %}
</select>
views.py:
def MyView(request):
query_results = data_immo.objects.all()
regions = data_immo.objects.values_list("nom_reg", flat=True).distinct()
departements = data_immo.objects.values_list("insee_dep", flat=True).distinct()
query_results_dict = {
'query_results': query_results,
'regions': regions,
'departements': departements,
}
return render(request,'home.html', query_results_dict)
models.py :
class data_immo(models.Model):
id = models.AutoField(primary_key=True)
insee_dep = models.IntegerField(db_column='INSEE_DEP', blank=True, null=True)
nom_reg = models.TextField(db_column='NOM_REG', blank=True, null=True)
class Meta:
managed = True
db_table = 'immo'
Насколько я понимаю, мне нужно извлечь выбранное значение из выпадающего списка "регионов" и использовать функцию onChange, чтобы вызвать действие, которое будет использовать эту переменную, и проверить базу данных, чтобы только соответствующие совпадения были выбран. К сожалению, я не знаю, как поступить. Я знаю, что есть несколько примеров, но ни один из них не был действительно удовлетворительным, и те, которые я попробовал, потерпели неудачу из-за моего недостатка знаний JS / AJAX. Дайте мне знать, если нужно больше деталей.
РЕДАКТИРОВАТЬ 1: добавлен models.py; Кроме того, веб-сайт, который был рекомендован в комментариях, имеет значения, хранящиеся в разных таблицах, тогда как у меня все они в одной и той же. Конечно, это должно повлиять на мой код и не может быть реплицировано само по себе.