我正在通过Ajax加载模板。
这就像客户端一样:
function AJAX_query(query_JSON){
$.ajax({
type: 'GET',
url: '/ajax_request/',
data: query_JSON,
datatype: "json",
success: function(data){
$("#search_results").html(data);
},//success
error: function(){
alert("AJAX - failure.");
}//error
});//.ajax
};//AJAX_query
回到服务器我有一个带分页的简单模板渲染。
def Selector_Query(request, query):
query = query.split(",")
# Filter model based on query
some_models = Some_Model.objects.all().filter(whatever = query[n])
# PAGINATION
paginator = Paginator(some_models, 30)
try:
some_models = paginator.page(query[n])
# If page is not an integer, deliver first page.
except PageNotAnInteger:
some_models = paginator.page(1)
# If page is out of range (e.g. 9999), deliver last page of results.
except EmptyPage:
some_models = paginator.page(paginator.num_pages)
last_page = paginator.num_pages
context = RequestContext(request, {
"some_models":some_models,
"last_page":last_page,
"page_number":query[n],
})
template = loader.get_template("some_folder/some_template.html")
return HttpResponse(template.render(context))
当我收到数据时,总会出现在顶部:
Content-Type: text/html; charset=utf-8
如果我使用load()
代替html()
,则上述内容不再出现。
但是,据我所知,我不能使用load,因为load()需要一个url而我宁愿在没有url的情况下工作,因为我发送了复杂的参数。因此,首先是AJAX的全部原因。
知道为什么会这样,我该如何解决?
答案 0 :(得分:1)
发现问题。
是return HttpResponse(template.render(context))
需要
return render_to_string("some_folder/some_template.html", context)