0

私はselectdependentを実行していますが、クエリを作成するときに問題が発生しました。ここでは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);
        });
    });
}

と私の見解

def cargar_paises(request):
if request.is_ajax:

    pais = Pais.objects.all()
    paises = []

    for s in pais:
        aux = []
        id = s.pk
        aux.append(id)
        nombre = s.nombre
        aux.append(nombre)
        paises.append(aux)

    return HttpResponse(json.dumps(paises), mimetype='aplication/json')

問題は、selectで値を出力し、idを別のクエリに送信する場合です。取得する値は、id_paisの値ではなく、selectのインデックスです。

4

2 に答える 2

0

IDを次のように設定してみてください。

var option = $('<option></option>', {value:(paises[0].aux.id+1), text:desc});
于 2013-02-17T16:44:05.137 に答える
0

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);
        });
    });
}

そしてビューでは、

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

Python辞書をJsonオブジェクトにマッピングし、PythonリストをJson配列にマッピングできることを忘れないでください。もう一つの良いヒントは、django-dajaxiceを使用することです。これは、やりたいことを行うのに非常に優れたツールです。とにかく、dJangoからこの種のものを抽出するのは良いことです。 。

編集

私は本当にそれについて考え.values()ました、クエリセット、あなたのビューで使用してください、

def cargar_paises(request):
    if request.is_ajax:
        paises = Pais.objects.values('id', 'nombre')
        return HttpResponse(json.dumps(paises), mimetype='aplication/json')

ここでドキュメントを見つけることができます。

于 2013-02-17T16:56:05.500 に答える