Я делаю проект Django и на своем сайте localhost, я создал панель поиска на сайте. Однако эта строка поиска не возвращает никаких результатов при вводе данных. Я просмотрел исходный код страницы, и я заметил, что некоторые строки, которые я никогда не ставили в:Search Bar Не работает на сайте Django
<input type='hidden' name='csrfmiddlewaretoken' value=(deleted for security purposes on Stack Overflow />
я использовал Осмотреть функцию элемента в моем браузере Firefox на Ubuntu, и когда я побежал монитор сети после обновления страницы, я получил это:
GET http://127.0.0.1:8000/static/assets/css/default.css [HTTP/1.0 304 NOT MODIFIED 5ms]
GET http://127.0.0.1:8000/static/assets/js/jquery-2.1.3.min.js [HTTP/1.0 304 NOT MODIFIED 8ms]
GET http://127.0.0.1:8000/static/assets/js/ajax.js [HTTP/1.0 304 NOT MODIFIED 11ms]
Когда я вошел в какой-то вход, я получил эту строку:
POST http://127.0.0.1:8000/articles/search/ [HTTP/1.0 404 NOT FOUND 13ms]
Вот мой 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);
}
В моем файле urls.py, у меня есть эта линия, которая позволяет осуществлять поиск:
url(r'^search/', 'article.views.search_titles'),
И в моем файле views.py, у меня есть эта функция search_titles:
def search_titles(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', {'articles' : articles})
Я не Не знаю, что я делаю, чтобы панель поиска не работала, но дайте мне знать, если вам нужно увидеть больше моего исходного кода, и я отредактирую этот пост. Спасибо.
Это работало. Спасибо. – brown1001
@ brown1001, если этот ответ вам помог, вы можете отметить правильный ответ, щелкнув по чеку. Благодарю. – levi