0

それらを生成するテンプレート {% for %} ステートメントの href リンクである本の画像を含むメイン ページがあります。おおよそ次のようになります。

{% for book in books %}
<a href="/single_book/">
  <img src="{{book.image}}">
</a>

画像をクリックすると、モデルからの情報を使用して書籍のタイトル、著者、発行年、説明などのコンテンツを生成する書籍に関する動的に生成されたページにリダイレクトされます。「single_book.html」のような html ファイルを使用してこれを行う方法はありますか?各本をクリックすると固有のコンテンツが表示されますか?

次のようないくつかの URL パターンを調べました。

url(r'^single_book/(\w+)/$', single_book),

しかし、保存された各htmlファイルは本ごとに保存する必要があるということですか? 本ごとにそれを行う「single_book.html」のhtmlテンプレートファイルを1つだけ用意したいと思います。

これを行う方法がある場合、view.py コードなどはどうなりますか? Django 1.6 と Python 2.7 を実行しています。MySQL DB の使用。とりあえず「manage.py runserver」を使って練習中です。

前もって感謝します。

4

2 に答える 2

1

はい、それがテンプレートの使用方法です。Django のクラス ベースのビュー (具体的には DetailView) に関するこのリンクを読むと、何をすべきかの大まかな概要を得ることができます。

# views.py, using the generic CBV DetailView
class SingleBookView(DetailView):
    object = Book

singlebook = SingleBookView.as_view()

# url.py change slightly so you can use named urls in templates
url(r'^single_book/(?P<pk>\w+)/$', singlebook, name='singlebook')

次に、テンプレートはすべての本で同じ single_book.html にすることができます。これは、本のオブジェクトが、URL の pk パラメータを使用してビューによって自動的に検出されるためです。

<p>{{ object.title }}</p>

さらに、名前付き URL を使用できるようになりました。

{% for book in books %}
    {# see how your original loop changes with named urls #}
    <a href="{% url singlebook book.pk %}">
        <img src="{{book.image}}">
    </a>
于 2013-07-12T20:34:36.613 に答える