私はブログプロジェクトの検索機能を実装しようとしていました。さまざまなチュートリアルのいくつかの実装が、入力に関係なくすべて一貫して404'dになったので、ここで答えを探しています。Django 1.9のカスタム検索クエリ。 GETリクエスト
def search(request):
try:
q = request.GET['q']
posts = Post.objects.filter(title__search=q)
return render_to_response('blog/search_post_list.html', {'object_list': posts, 'q':q})
except KeyError:
return render_to_response('blog/search_post_list.html')
blog/urls.py
で: URL(R '^検索'、検索、名称= '検索')、
views.py
で、もちろん、私には最も基本的なのだ一つです
/templates/blog/search_post_list.html
には、作業テンプレートと同じコード{% for post in object_list %}
を含むテンプレートがあります。
ので、任意のlocalhost:8000/blog/search?q=<search_query_here>
に行くと、私は、コードを超えた何かがあるかもしれないという気持ちを持っているので、404
私は自明簡単なコードを守ってきた理由とDjangoのデバッグページがされており、I誰かがコードのどこを調べるか教えてくれることを願っています。
EDIT: ここでは404ページだ:それは明らかに呼ばれたので、
Page not found (404)
Request Method: GET
Request URL: http://localhost:8000/blog/search?q=what
Raised by: django.views.generic.detail.DetailView
No post found matching the query
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
はここで、私のDetailViewためのURLです。
url(r'^(?P<slug>[a-zA-Z0-9-]+)/?$',
DetailView.as_view(
model=Post,
)),
404デバッグページの全文は何ですか? – Alasdair
@Alasdair 'ページ(404) リクエストメソッドが見つかりません:\t django.views.generic.detail:によって発生し何 8000 /ブログ/検索Q =:\t リクエストURLをGET:\tます。http:// localhostと?。 DetailView Django設定ファイルにDEBUG = Trueが設定されているため、このエラーが表示されています。それをFalseに変更すると、Djangoは標準404ページを表示します。 ' –
私はDetailViewのURLを置く必要があるかもしれないことに気づきました。追加する。 –