首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过Django模板-标记呈现JSON对象

通过Django模板-标记呈现JSON对象
EN

Stack Overflow用户
提问于 2013-12-25 15:05:46
回答 1查看 1.2K关注 0票数 0

我通过模板中的AJAX接收JSON格式的Django对象字典。是否有可能通过Django模板标记呈现本词典?我可以从jQuery调用Django模板标记并将对象作为参数传递给它吗?

当前的解决方案是在jQuery中乏味地构造html:

代码语言:javascript
代码运行次数:0
运行
复制
$.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
}); 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-25 15:11:32

Templatetag是服务器端的,所以不能使用django的模板来处理Ajax请求的结果--至少不能直接处理。可能的解决办法:

  • 您最终可以编写一个视图,该视图将接受您的json数据并返回格式化的html,但这将有点麻烦。
  • 如果json来自您自己的应用程序,则可以返回一个html片段而不是json。
  • 如果json来自另一个站点,您还可以在您的应用程序中有一个视图来执行请求,并从json返回格式化的html片段(然后您将发布到此视图)。
  • 最后,如果您的应用程序对ajax/json之类的东西很感兴趣,您可能需要使用一些js模板框架或类似于angular.js的东西。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20774100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档