【问题标题】:Parsing Django QuerySet with JQuery using AJAX使用 AJAX 使用 JQuery 解析 Django QuerySet
【发布时间】:2011-09-23 01:11:26
【问题描述】:

我返回 1 的 QuerySet,我的 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:[object Object]。我想显示正在返回的 Object 模型的 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 类型的。

编辑。这是返回时数据的样子。

>>> 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}}]'

【问题讨论】:

  • 试试看dataconsole.log(data);。在那里你应该能够看到,你必须在存储在value 的对象中访问什么。可能是 value.name
  • 没有看到您正在创建数据的视图,您返回的数据很难知道这里发生了什么
  • 我已经更新了我原来的帖子。

标签: jquery ajax django parsing django-queryset


【解决方案1】:

根据您的编辑:

$.each(data, function(key, value){
        alert( key + ': ' + value.fields.name );
    });
}

【讨论】:

  • 你能给我链接一个参考来制作我自己的序列化器吗?此外,除非是查询集,否则 serializers.serialize 行将不起作用。
  • 我在原始帖子的编辑中添加了序列化后的数据。
  • 谢谢先生,太棒了!效果很好,非常感谢!
【解决方案2】:

要查看返回的数据,只需使用 javascript 函数 JSON.stringfy(data); 应该显示数据而不是 [object object]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 2020-01-18
    • 1970-01-01
    • 2021-03-13
    • 2012-02-03
    • 2011-10-23
    • 2010-12-04
    相关资源
    最近更新 更多