Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将var js发送到selectdynamic中的django视图_Select_Dynamic - Fatal编程技术网

将var js发送到selectdynamic中的django视图

将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

我正在执行select dependent,在进行查询时遇到了一个问题,这里是js

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')