将var js发送到selectdynamic中的django视图
我正在执行select dependent,在进行查询时遇到了一个问题,这里是js将var js发送到selectdynamic中的django视图,select,dynamic,Select,Dynamic,我正在执行select dependent,在进行查询时遇到了一个问题,这里是js function cargar_paises() { $.getJSON('cargar_paises', {}, function (data) { $('#paises').empty(); $('#paises').append('<option value="0">Seleccione ...</option>'); $.each(data, functio
function cargar_paises() {
$.getJSON('cargar_paises', {}, function (data) {
$('#paises').empty();
$('#paises').append('<option value="0">Seleccione ...</option>');
$.each(data, function (id, desc) {
var option = $('<option></option>', {value:(id+1), text:desc});
$('#paises').append(option);
});
});
}
问题是当我打印值时在“选择id并将其发送到另一个查询”中,值我采用的是select的索引,而不是id的值。尝试将id设置为:
var option = $('<option></option>', {value:(paises[0].aux.id+1), text:desc});
var option=$('',{value:(paises[0].aux.id+1),text:desc});
即使使用dJango.values()
也可以使用字典列表而不是列表更好地解决这个问题,但为了保持简单,可以使用完全相同的方法
function cargar_paises() {
$.getJSON('cargar_paises', {}, function (data) {
$('#paises').empty();
$('#paises').append('<option value="0">Seleccione ...</option>');
$.each(data, function (item) {
var option = $('<option></option>', {value:item.id, text:item.nombre});
$('#paises').append(option);
});
});
}
请记住,您可以将Python字典映射到Json对象,将Python列表映射到Json数组,另一个好的提示是使用它是一个非常好的工具来做您想做的事情,不管怎样,使用dJango很好
编辑
我真的考虑过了,使用查询集中的.values()
,您的视图
def cargar_paises(request):
if request.is_ajax:
paises = Pais.objects.values('id', 'nombre')
return HttpResponse(json.dumps(paises), mimetype='aplication/json')
您可以找到文档。在生成内容时,考虑id_pais表字段和名称,以便我选择问题仍然存在的内容,“cargar_paises”为我提供所有记录,但选择id_pais=1的值会返回我:“GET/cargar_Departmentos?pais=0 HTTP/1.1“当结果应该是:“GET/cargar_departmentos?pais=1http/1.1“然后该值被作为select的索引,而不是id,我想或者我正在打印列表的索引值,但这是另一个问题,它的解决方案非常类似,
$.getJSON('cargar_paises',{},function(data){})
如果你看到第一个括号是空的,$.getJSON('cargar departmentos',”,{id_pais:1},function(data){}
其中1,被重新放置在用户给定的id pais处,然后通过request.GET参数访问参数,pprint它,您将看到神奇之处,无论如何,我建议您问另一个问题,因为这与您需要的内容无关。
def cargar_paises(request):
if request.is_ajax:
pais = Pais.objects.all()
paises = []
for s in pais:
aux = {}
aux['id'] = s.pk
aux['nombre'] = s.nombre
paises.append(aux)
return HttpResponse(json.dumps(paises), mimetype='aplication/json')
def cargar_paises(request):
if request.is_ajax:
paises = Pais.objects.values('id', 'nombre')
return HttpResponse(json.dumps(paises), mimetype='aplication/json')