我正在从一个教程中练习,我已经达到了使用 jquery 和 ajax 创建一个搜索框。一切都很顺利,除了当我在搜索中按任意键时,我得到一个错误,
/articles/search 处的 RuntimeError 您通过 POST 调用了此 URL,但该 URL 没有以斜杠结尾,并且您设置了 APPEND_SLASH。Django 在维护 POST 数据时无法重定向到斜杠 URL。将表单更改为指向 localhost:8000/articles/search/(注意尾部斜杠),或在 Django 设置中设置 APPEND_SLASH=False。
我在我的代码中检查了“/”,但它在那里。不知道怎么回事。请帮忙。
应用程序的 urls.py:
url(r'^search/$', 'article.views.search_title'),
)
视图.py:
def search_title(request):
if request.method == "POST":
search_text = request.POST['search_text']
else:
search_text = ''
articles = Article.objects.filter(title__contains=search_text)
return render_to_response('ajax_search.html', {'article': article})
我正在使用 jquery 版本:
jquery-2.0.0.min.js
ajax.js:
$(function(){
$('#search').keyup(function() {
$.ajax({
type: "POST",
url: '/articles/search/',
data: {
'search_text' : $('#search').val(),
'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val()
},
success: searchSuccess,
dataType: 'html'
});
});
});
function searchSuccess(data, textStatus, jqXHR)
{
$('#search-results').html(data);
}
甚至当我检查 ajax.js 时,在最后一行
$('#search-results').html(数据);
它读作:
$('#search-results').html(日期);
我的主要网址:
(r'^articles/', 包括('article.urls')),