Я просто не понимаю, что здесь происходит, и я потратил много времени на отладку этой вещи (которую я взял непосредственно из книги Django). Функциональность поиска фактически работала в первый раз, когда я загрузил сайт. Затем мне пришлось выполнить некоторую отладку, чтобы заставить другие части работать, и функциональность поиска внезапно сломалась.Простая форма поиска Django Просто не работает
Когда я отправляю форму, я получаю 404, рассказываю мне, что «история не существует», хотя она фактически сохранена в моем админе (и, следовательно, в моей базе данных). Запрос Get, добавленный к URL-адресу, кажется правильным. Он объединяет несколько слов.
Я знаю, что это так просто, и это действительно сработало, прежде чем я не получу его. Также интересно, что книга, в которой я взяла этот код, не включала вторую Q после трубы (|). Я думал, что это опечатка, и всякий раз, когда я пытаюсь ее удалить, весь сайт выходит из строя (включая шаблон администратора). Это тоже странно.
from cms.models import Story, Category
from django.db.models import Q
from django.shortcuts import render_to_response, get_object_or_404
def search(request):
if 'q' in request.GET:
term = request.GET['q']
story_list = Story.objects.filter(
Q(title__contains=term) | Q(markdown_content__contains=term))
heading = "Search results"
return render_to_response("cms/story_list.html", locals())
Отступы (в моем коде) верны. Я понимаю, что я испортил отступы в приведенном примере. – Ben
Ваш код не поднимает '404' в любом месте, поэтому, возможно, есть проблема с конфигурацией' urls.py' ... –
Я не знаю, я скопировал urls.py точно из книги, а остальная часть приложения работает только с хорошими urlpatterns + = patterns ('project.cms.views', \t url (r '^ category/(? P [- \ w] +)/$ ',' category ', name = "cms-category"), \t url (r'^search/$ ',' search ', name = "cms-search"), ) e. –
Ben