2016-09-16 16 views
0

私はURLパターンに問題があります、あなたはそれらを下に見ることができます。URLリストの問題

"Python"(slug = 'python')という1つのカテゴリにのみ接続できます。 "Django"、 "Other categories"、 "Myown"などのリンクは機能しません。以下のような404エラーが表示されます。

Page not found (404) 
Request Method: GET 
Request URL: http://127.0.0.1:8000/rango/category/myown 
Using the URLconf defined in tang_w_djang.urls, Django tried these URL 
patterns, in this order: 
^admin/ 
^$ [name='index'] 
^rango/ ^$ [name='index'] 
^rango/ ^about/$ [name='about'] 
^rango/ ^add_category/$ [name='add_category'] 
^rango/ ^category/(?P<category_name_slug>[\w\-]+)/$ [name='show_category'] 
^rango/ ^category/(?P<category_name_slug>[\w\-]+)/add_page/$ [name='add_page'] 
The current URL, rango/category/myown, didn't match any of these. 
+1

「http://127.0.0.1:8000/rango/category/myown /」にスラッシュを付けて試してみてください。私は正常にDjangoが自動的にリダイレクトして後続のスラッシュを追加するので、うまくいきません。 – Alasdair

+0

ありがとうございました。 –

答えて

0

URLパターン^category/(?P<category_name_slug>[\w\-]+)/$にはスラッシュが付きます。

したがって、http://127.0.0.1:8000/rango/category/myown/の代わりにURL http://127.0.0.1:8000/rango/category/myown/を使用してカテゴリを表示する必要があります。

common middlewareが有効で、APPEND_SLASH=Trueが設定されている場合、Djangoは/rango/category/myownから/rango/category/myown/にリダイレクトする必要があります。詳細については、ドキュメントを参照してください。

+0

私はAPPEND_SLASHを使用すると、ビュー内のadd_page関数と競合しています(_ランタイムエラー_) ( "POST経由でこのURLを呼び出しましたが、URLはスラッシュで終わらず、APPEND_SLASHを設定しました。 POSTデータを維持しながらスラッシュURLにリダイレクトする127.0.0.1:8000/rango/category/myown/add_page/(末尾のスラッシュに注意)にポイントするか、Djangoの設定でAPPEND_SLASH = Falseに設定してください._ "疑問符を追加 - '+)/ $ ^カテゴリー/(P [\ \ W]??':私はこの本のように** URL **パターンを編集する解決) 。 しかしあなたの上記のコメントは私を助けました。 –

+0

うまくいけばうれしいです。私は、疑問符を削除し、エラーメッセージのように後続のスラッシュを含むようにフォームを変更することをお勧めします。 – Alasdair