附加一个包含jquery的django模板

时间:2013-08-03 04:04:06

标签: jquery django django-templates

我想在jquery帖子之后将以下django模板include(一个列表项)添加到名为myClass的UL中:

 $.post(url,data,function(result){
        $( ".myClass" ).append('{% include "mytemplate.html" %}');
        })

这会导致重新加载页面的错误。

我已经阅读了关于jquery加载的内容,听起来很有希望。无论哪种方式我如何添加列表项?

2 个答案:

答案 0 :(得分:0)

无法执行$( ".myClass" ).append('{% include "mytemplate.html" %}');

可能的方法之一是:

<form action="#" method="post" id="testForm">     
    <input type="text" name="tester" value="">        
    <input type="submit" value="save" />
</form>
<div class="myClass"></div>

脚本

$("#testForm").on("submit", function(event){    
    $.post('url', $(this).serialize(),
    function(data){
        CreateRow(data);
    }, "json"); 
    event.preventDefault(); 
});

function CreateRow(dd){
    $(".myClass").append(dd.mycontent);
}

views.py for url

import json
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def testpost(request):
    str_html="""
    <h1>....</h1>...your full htmlcode
    """       
    return HttpResponse(json.dumps({"mycontent": str_html}), mimetype="application/json")

答案 1 :(得分:0)

执行此操作最相似的方法是,在view中,您返回templaterendered,例如,您有一个名为to_include.html的模板:

模板to_include.html

<p>{{variable}}</p>

网址

url(r'^some_view/$', some_view),

POST请求(在您将包含to_include.html的模板中)

 $.post('/some_view/',data,function(result){
        $( ".myClass" ).append(result);
        }, 'html');

视图

def some_view(request):
    variable = "Hi I am an example"
    return render(request, 'to_include.html', {'variable': variable})

逻辑是viewsome_view)会将templateto_include.html)已经rendered返回POST request:< / p>

    <p>Hi I am an example</p>

因此result已成为template rendered

$( ".myClass" ).append(result);

确实是:

$( ".myClass" ).append("<p>Hi I am an example</p>");