2011-04-11 4 views
0

Je veux passer pour créer une sortie JSON avec un dictionnaire avec plusieurs modèles, comme celui-ci:django modèle multiple dans le dictionnaire JSON


results = {} 
results["game_info_db"] = db.gameInfo.objects.get(name='name') 
results["dlc_list_db"] = db.gameAddon.objects.filter(game__name='name') 

Qu'est-ce que j'ai essayé est serialize (serializers.serialize) tous Dicts entrys et après ce que je jette (simplejson.dumps) tout le dict ... mais il ne semble pas être correct ...

toute suggestion?

+0

Pourriez-vous être un peu plus clair sur ce qui ne fonctionne pas comme prévu? – arie

+0

Pouvez-vous également afficher le code sérialisé sur les modèles et à quoi ressemble le code de simplejson.dumps avant de le renvoyer au client? –

Répondre

2

Vous pouvez passer les valeurs des modèles et le convertir en une liste:

results = {} 
results["game_info_db"] = list(db.gameInfo.objects.get(name='name').values()) 
results["dlc_list_db"] = list(db.gameAddon.objects.filter(game__name='name').values()) 

return HttpResponse(json.dumps(results), mimetype='application/javascript') 

Les données apparaissent sous forme d'objets sur le côté javascript. En supposant que vous avez une colonne name, vous pouvez accéder aux attributs comme ce qui suit:

$.getJSON("/ajax/", function(data) { 
    var dlcs = data.dlc_list_db; 
    for (i = 0; i < dlcs.length; i++) { 
     var dlc = dlcs[i]; 
     alert(dlc.name); 
    } 
}); 
Questions connexes