我想在jquery帖子之后将以下django模板include(一个列表项)添加到名为myClass的UL中:
$.post(url,data,function(result){
$( ".myClass" ).append('{% include "mytemplate.html" %}');
})
这会导致重新加载页面的错误。
我已经阅读了关于jquery加载的内容,听起来很有希望。无论哪种方式我如何添加列表项?
答案 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);
}
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
中,您返回template
已rendered
,例如,您有一个名为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
)已经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>");