【发布时间】:2015-07-21 10:12:44
【问题描述】:
我有一个简单的 AJAX 脚本,它在名为 AJAXBox 的搜索字段中输入一个输入字符串,并调用一个视图函数,该函数使用过滤器查询数据库并返回与输入参数匹配的所有用户对象的查询集。当我使用 django 模板标签遍历查询集时,它不起作用。我认为这是因为我的 Javascript 调用的输出实际上并未输出查询集,而是 django 模板无法识别的某种类型的字符串。我该如何解决这个问题,以便我的 AJAX 调用返回 django 中的正常渲染函数输出的真正的 django 兼容查询集?
AJAX 的 JS:
$(document).ready(function(){
$('#AJAXBox').keyup(function() {
var searchedterm;
searchedterm = $(this).val();
$.get('/AJAXsearch/', {searchterm: searchedterm}, function(data){
$('#result').html(data);
});
});
});
python 代码的 tl;dr 本质上是:
def AJAXsearch(request):
searchterm = request.GET['searchterm']
result = UserObj.objects.filter(person_name=searchterm)
return HttpResponse(result)
当我转到模板中的 html 并执行以下操作时:
<div id="result">
{% for person in result %}
{{person.property}}
{%endfor%}
</div>
模板标签循环不做任何事情。事实上,我根本无法操纵/设计输出,它只是一个普通的用户名字符串。
【问题讨论】: