【问题标题】:Django follow value foreign key in ajax jsonDjango在ajax json中跟随值外键
【发布时间】:2014-01-28 17:11:37
【问题描述】:

我的看法

def cargar_categorias(request):
    data = serializers.serialize("json", MyModel.objects.all())
    return HttpResponse(data,  mimetype='aplication/json')

响应json

[{"pk": 8, "model": "MyModel.MyModel", "fields": {"celular": "234342342", "logo": "recetas/aurelio.jpg", "tipo": 1, ....

但“tipo”字段是外键,我需要恢复该字段的值而不是 id (1)

我的 Jquery 代码

$.ajax({
    type: "GET",
    contentType: "application/json; charset-utf-8",
    dateType: "json",
    url: "/cargar_categorias",
    success: function(response){
        var i=(response.length-1)-6;
        for( i;i<=(response.length-1);i++){
            $('#locations').append("<li data-celular='"
                    + response[i].fields.celular +"' data-tipo='"
                    + response[i].fields.tipo +"'><img  href=#" 
                    + response[i].fields.logo +" src='/media/"
                    + response[i].fields.logo +"'/></li>");
            }
        }
    });

我认为可以使用 select_related() 但不起作用,或者 response[i].fields.tipo.nombre 或 .... 我现在不会,请帮帮我,这太疯狂了,对不起我的英语

【问题讨论】:

标签: jquery ajax json django


【解决方案1】:

解决此问题的一种可能方法是根据查询集的返回构造您自己的字典对象。你会做这样的事情:

queryset = MyModel.objects.all()
list = [] #create list
    for row in queryset: #populate list
        list.append({'celular':row.celular, 'logo': row.logo, 'tipo': row.tipo.id})
    list_json = json.dumps(list) #dump list as JSON
    return HttpResponse(list_json, 'application/javascript')

【讨论】:

    猜你喜欢
    • 2011-08-02
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2022-01-17
    • 2011-04-27
    • 2018-05-03
    • 2013-08-28
    相关资源
    最近更新 更多