私はDjango1.4で正規の本/著者/出版社の例を実装しています。すべての本のリストを表示する私のビューでは、名前付きURLパターンを参照するアンカータグにURLテンプレートタグを挿入しました。
{% for book in book_list %}
{# <a href="/book/{{ book.id }}/">{{ book.title }}</a> #}
<a href="{% url 'book-details' book.id %}">{{ book.title }}</a>
{% endfor %}
(機能するハードコードされたURLアンカーをコメントアウトしたことに注意してください。)
私のurlpatternsは次のとおりです。
url(r'^book/$', 'app.views.show_all_books', name="all-books"),
url(r'^book/(\d+)/$', 'app.views.show_book_details', name="book-details"),
アンカーをクリックして本の詳細を表示すると、次のエラーが発生します。
NoReverseMatch at /book/
Reverse for "book-details" with arguments '(1,)' and keyword arguments '{}' not found.
このエラーが発生した他の人に関する他の投稿や、URLテンプレートタグと名前付けURLパターンに関するDjangoのドキュメントを読んだことがありますが、何が間違っているのかわかりません。それが役立つ場合は、「show_book_details」関数の署名を次に示します。
def show_book_details(request, id):
エラーメッセージが何を言っているのか完全には理解していないと思います。urlpattern名を囲む一重引用符を削除し、名前付きurlpatternの代わりにビューパス'app.views.show_book_details'を使用してみましたが、どちらの変更でも問題は解決しません。誰かが助けることができますか?
どうもありがとう。