Jquery 显示django ajax搜索的搜索结果
我一直在学习django ajax搜索教程。我无法在模板中显示结果,尽管它们在终端中“打印”得很好。如何在html页面上获得这些结果? 以下是我的观点.py:Jquery 显示django ajax搜索的搜索结果,jquery,ajax,django,Jquery,Ajax,Django,我一直在学习django ajax搜索教程。我无法在模板中显示结果,尽管它们在终端中“打印”得很好。如何在html页面上获得这些结果? 以下是我的观点.py: def search_titles(request): if request.method == 'POST': search_text = request.POST['search_text'] print search_text search = UploadFile.objec
def search_titles(request):
if request.method == 'POST':
search_text = request.POST['search_text']
print search_text
search = UploadFile.objects.filter(event_name__icontains=search_text)
for i in search:
print(i.event_name)
context={
'search':search,
}
return render(request,'ajax_search.html',context)
HTML模板:
<!DOCTYPE html>
<html>
<head>
<title>Search</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.0.min.js"></script>
<script type="text/javascript" src="/static/assets/js/ajax.js"></script>
</head>
<body>
<h3>Search</h3>
{% csrf_token %}
<input type ='text' id="search" name="search"/>
<ul id="search-results">
</ul>
</body>
</html>
ajax_search.html:
{% if search.count>0 %}
{% for i in search %}
<li><a href="events/{{i.event_name}}">{{i.event_name}}</a></li>
{% endfor %}
{% else %}
<li>Nothing Found :(</li>
{% endif %}
线程似乎也有类似的问题。但接下来的操作甚至不会在终端中给出搜索结果。您应该使用HttpResponse返回对ajax请求的响应。 如果您使用的是Django 1.7+,那么使用JsonResponse
from django.template.loader import render_to_string
from django.http import HttpResponse
def search_titles(request):
context ={}
if request.method == 'POST':
search_text = request.POST['search_text']
search = UploadFile.objects.filter(
event_name__icontains=search_text)
context={
'search':search,
}
html = render_to_string('search_results.html',context)
return HttpResponse(html, content_type="application/json")
return render(request,'ajax_search.html',context)
创建一个新的html
search_results.html:
{% for i in search %}<li>{{i.event_name}}</li>{% endfor %}
{%fori in search%}{{i.event_name} {%endfor%}
你能解释一下如何更新seachSuccess函数吗……这一直是我的问题……我对ajaxI更新的代码了解不多。因此,搜索成功不需要改变
from django.template.loader import render_to_string
from django.http import HttpResponse
def search_titles(request):
context ={}
if request.method == 'POST':
search_text = request.POST['search_text']
search = UploadFile.objects.filter(
event_name__icontains=search_text)
context={
'search':search,
}
html = render_to_string('search_results.html',context)
return HttpResponse(html, content_type="application/json")
return render(request,'ajax_search.html',context)
{% for i in search %}<li>{{i.event_name}}</li>{% endfor %}