Я добавляю функцию поиска AJAX в свое приложение для блогов Django.Django & AJAX search view дает мне KeyError
Вот мой код:
search_form.html
<form id="search-form" method="get" action="{% url 'search' %}">
<input type="text" name="q" />
<input type="submit" value="Submit" />
</form>
<div id="search-results">
{% include "post_list.html" %} //html file which simply views all the requested posts
</div>
search.js
function search_submit() {
var query = $("#id_query").val();
$("#search-results").load(
"/search/?q=" + encodeURIComponent(query)
);
return false;
}
views.py
class PostSearch(ListView):
model = Post
template_name = 'search_form.html'
context_object_name = 'post_list'
def get(self, request, *args, **kwargs):
if self.request.is_ajax():
return self.render_to_response('post_list.html', self.get_context_data(**kwargs))
else:
return self.render_to_response(self.template_name, self.get_context_data(**kwargs))
def get_queryset(self):
queryset = super(TitleSearchMixin, self).get_queryset()
q = self.request.GET.get('q')
if q:
return queryset.filter(question_title__icontains=q)
Таким образом, в моем представлении QuestionSearch просто появляется «post_list.html», который является шаблоном для просмотра нескольких сообщений для запроса AJAX, возвращая весь «search_form.html», когда он является обычным запросом. По какой-то причине, это дает мне ошибку:
ОШИБКА:
KeyError at /search/
u'object_list'
Поскольку я застрял, у меня есть 2 вопроса ..
(1) Почему возникающую эта ошибка?
(2) Является ли моя реализация функции поиска даже выполненной правильно.? Я читал о дизайне RESTf API, но я не уверен, является ли мой «RESTful» или нет: ((
Спасибо !!!
Опубликовать Ваше отслеживающий. –