Джанго JQuery JSON десериализации - PullRequest
1 голос
/ 20 февраля 2011

У меня есть модели, например, такие как

class Model():
time=models.DateTimeField()
free=models.BooleanField(default=False)
user=models.ForeignKey(User) //it is my own User class
full_info=models.TextField()

, чем я сериализую его:

data=serializers.serialize("json",Model.objects.all())
        return HttpResponse(data,mimetype='application/json')

и вот мой код jquery, который я использую для его извлечения:

$.post("/url",data,
                    function(data){


                        }, "json"
                    );

И мой вопрос: как написать всю информацию от Джейсона о модели? Например, я хочу, чтобы в одном абзаце тег был один объект со всей информацией о нем.Как я могу это сделать?Спасибо за помощь С наилучшими пожеланиями

1 Ответ

3 голосов
/ 20 февраля 2011

Проверьте формат, который выдает сериализатор (через ваш браузер или оболочку):

[{"pk": 1, "model":"modelname", "fields": {"fieldname": "fieldvalue", "fieldname2":"fieldvalue2"}}, ....]

Итак, это список массивов с pk, model и fields, которыймассив.

$.getJSON("/myurl", 
    function(data) {
        // data is [{},{},{}]
        $.each(data, function(key, val) { 
            // val is { pk, model, {fields}}
            $("#output").append("Object id is: " + val.pk + ' of model: ' + val.model);
            $.each(val.fields, function(fieldname, field) {
                 $("#output").append(fieldname + ' : ' + field);
            }); 
        });
    }, "json");

<div id="output">

</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...