У меня есть два выпадающих списка, и я пытаюсь заполнить второй, используя Javascript, когда меняется первый. Он должен быть заполнен из значений базы данных, содержащихся в переменной «departements» моего файла views.py.
Я нашел какой-то код в Интернете, но он не работал, когда я пытался применить его к своему делу. У меня около 0 знаний в Javascript, так что не знаю, нахожусь ли я даже на правильном пути.
Ниже приведена более подробная информация о моих файлах:
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'
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)
home. html
<select id="reg" name="reg" onChange="populate2()">
{% for item in regions %}
<option val="{{ item.nom_reg }}"> {{ item.nom_reg }} </option>
{% endfor %}
</select>
<select id="dep" name="dep"></select>
<script type="text/javascript">
function populate2(){
$('.dep').append('<option>' + departements[0].insee_dep + '</option');
}
</script>
Мне нужна функция populate2 (), чтобы обновить выпадающий список dep. Функция явно неправильная, но я не знаю, где именно. Заранее спасибо!