2

我想在 jquery 发布之后将以下 django 模板包含(它是一个列表项)添加到名为 myClass 的 UL 中:

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

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

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

4

2 回答 2

2

最相似的方法是,在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})

逻辑是view( some_view) 将template( to_include.html) 已经返回renderedPOST request

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

result已经templaterendered:_

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

真的是:

$( ".myClass" ).append("<p>Hi I am an example</p>");
于 2013-08-03T05:25:34.207 回答
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);
}

url的views.py

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")
于 2013-08-03T05:06:07.073 回答