Eae galera, tudo bem ?
To tentando realizar um preenchimento de select com ajax, eu diz o titulo, eu seleciono o estado ('uf') e no outro select ele me trás só as cidades pertencentes aquele estado. Só que ele me fala que o cidades não está definida.
views.py
def Cidades(request):
cidades = []
if request.method == 'GET':
uf = request.GET.get('uf')
for cidade in Municipios.objects.filter(uf__uf=uf).order_by('municipio'):
dados = {}
dados['pk'] = cidade.id
dados['descricao'] = cidade.municipio
cidades.append(dados)
return JsonResponse(data=cidades, safe=False)
return JsonResponse(data=cidades, safe=False)
urls.py
urlpatterns = [
path('cidades/', Cidades, name="listagem_cidades"),
]
forms.py
'uf': forms.Select(attrs={'data-toggle': 'select2',
'class': 'form-control select2-multiple formulario_input',
'onchange': 'cidades()'}),
html
<div class="col-md-2">
<div class="form-group mb-2">
<label for="id_uf" class="col-form-label requiredField">
UF<span class="asteriskField">*</span>
</label>
{{ form.uf }}
</div>
</div>
<div class="col-md-6">
<div class="form-group mb-2">
<label for="id_cidade" class="col-form-label requiredField">
Cidade<span class="asteriskField">*</span>
</label>
{{ form.cidade }}
</div>
</div>
<script>
$(document).ready(function (){
function cidades() {
var vuf = $('#uf_id').val();
$('#cidade_id').select2({
ajax: {
url: '/ibge/cidades/',
data: {uf: vuf},
processResults: function(data) {
console.log(data)
// Transforms the top-level key of the response object from 'items' to 'results'
return {
results: data.items
};
}
}
});
}
})
</script>
Já inverti os id, e o erro persiste. Alguém poderia me ajudar ?