Разбор Django QuerySet с JQuery с использованием AJAX - PullRequest
0 голосов
/ 23 сентября 2011

Я возвращаю QuerySet, равный 1, и мой JQuery выглядит следующим образом

<script> 
    $(document).ready(function(){

    $("#search_form").submit(function(event)
    {
        event.preventDefault();

        $.ajax({
            type: "POST",
            url: "object/search/",
            processData: false,
            dataType: "json",
            success: function(data){
                $.each(data, function(key, value){
                    alert( key + ': ' + value );
                    });
                }
            });
    });});
</script>

Оповещение появится, но все возвращает 0: [объект Объект]. Я хотел бы отобразить свойство name возвращаемой модели объекта. Как использовать object.name. Я действительно застрял, ваша помощь в решении этой проблемы ценится.

Код для моего представления:

if request.is_ajax():
    if request.method == 'POST':
        format = 'json'
        mimetype = 'application/json'
        o = Object.objects.filter(name__icontains="bin")
        data = serializers.serialize(format, o)
        return HttpResponse(data, mimetype)     

Я только возвращаю 1 объект с этим запросом, но он имеет тип QuerySet.

EDIT. Вот как выглядят данные при возврате.

>>> o
[<Object: Bin Ber>]
>>> data = serializers.serialize(format, o)
>>> data
'[{"pk": 1, "model": "objects.object", "fields": {"name": "Bin Ber", "roof": 3,                                               "depth": [3], "user": 1, "created_when": "2011-08-16 03:11:36", "shared": false,                                                          "projects": [1], "description": null}}]'

Ответы [ 2 ]

2 голосов
/ 23 сентября 2011

На основании ваших правок:

$.each(data, function(key, value){
        alert( key + ': ' + value.fields.name );
    });
}
0 голосов
/ 30 мая 2014

для просмотра возвращаемых данных просто используйте функцию javascript JSON.stringfy (data);который должен показывать данные вместо [объект объекта]

...