2013-12-25 2 views
0

Я получаю словарь объектов Django в формате JSON через AJAX в шаблоне. Есть ли возможность сделать этот словарь с помощью шаблона-шаблона Django? Могу ли я вызвать шаблон шаблона Django из jQuery и передать объект в качестве параметра к нему?Render JSON объекты через шаблон шаблона Django

В настоящее время решения утомительно построить HTML в JQuery:

$.ajax({ 
    url: url, 
    type: "POST", 
    success: function(data) { 
     var obj = $.parseJSON(data); 
     $.each(obj, function() { 
      data = this['fields']; 

      post += "<p id='" + this['pk'] + "'>" + data['creator'] + data['created'] + data['body']; 
      post += "depth: " + data['depth']; 
      post += "<a name='" + this['pk'] + "' class='show_answers' href='" + show_url + "'>Show</a>"; 
      post += "<a name='" + this['pk'] + "' href='" + answer_url + "'>Answer</a></p>"; 
      post += "<div id='" + this['pk'] + "_div'></div>"; 
     }); 
     $('#' + div_id).html(post); 
    }, 
    crossDomain: false 
}); 

ответ

1

Templatetags является на стороне сервера, так что нет, вы не можете использовать шаблонизации Джанго обработать результат запроса Ajax - не сразу, по крайней мере , Возможные решения:

  • вы можете в конечном итоге написать мнение, что будет принимать ваши данные в формат JSON и возвращает форматированный HTML, но это будет немного на тяжелой стороне.

  • Если json приходит из вашего собственного приложения, вы можете вернуть html-фрагмент вместо json.

  • Если json приходит с другого сайта, вы также можете посмотреть в своем приложении, выполняющем запрос, и вернуть отформатированный html-фрагмент из json (после чего вы опубликуете в этом представлении).

  • , наконец, если вы приложение является тяжелым на Ajax/JSon вещи, вы можете использовать некоторые рамки JS шаблонный или что-то вроде angular.js

Смежные вопросы