-1

私はカタログを持っていて、重複したレジスターがたくさんあります。レジスターの 1 つだけを取得する必要があります。私はそれを行う方法がわかりません.Djangoとajax呼び出しを使用して、データベースからデータを取得しています。

view.py

def adendumSeach(request):
    if request.POST.has_key('grupname') and request.is_ajax():
        x = request.POST['grupname']
        y = adendum.objects.filter(adendum_credencial=x)
        formulario = serializers.serialize('json', y)
        return HttpResponse(formulario, mimetype="application/json")
    else:
        return render_to_response('ExpedienteDetalle.html',
        context_instance=RequestContext(request))

ajax.js

function adendum(idgrupo) {
      $.ajax({
            url: "/adendum_search",
            type: "POST",
            dataType: "json",
            data: {
                grupname: idgrupo,
                csrfmiddlewaretoken: '{{ csrf_token }}'
            },
                 success: function (json) {
                var jsonResponse = eval(json);
                $.each(jsonResponse, function(index, element){
                    $("#aden").css("display", "block");
                    $("#thconsultas").css("display", "block");
            }); ;
                 },
             error: function (xhr, errmsg, err) {
                alert(xhr.status + "  Inside error :    " + xhr.responseText);
            }
        });
     }
4

1 に答える 1

1

has_key廃止されました。

xおよびyは不適切な変数名です。

adendumクラスは大文字でなければなりません

@olegが言ったように、distinctを使用してください

def adendumSeach(request):
    if 'grupname' in request.POST  and request.is_ajax():
        grupname = request.POST['grupname']
        adendum_list = adendum.objects.filter(adendum_credencial=grupname).distinct()
        formulario = serializers.serialize('json', adendum_list)
        return HttpResponse(formulario, mimetype="application/json")
    else:
        return render_to_response('ExpedienteDetalle.html',
        context_instance=RequestContext(request))
于 2013-10-26T19:18:50.007 に答える