0

私はDjangoの使用を開始し、一般的なビューに進んでいます。素晴らしい建築!ええと、ドキュメントは素晴らしいですが、まったくの初心者にとっては、UNIXドキュメントに少し似ています。ここでは、自分が何をしているのかをすでに知っているときに最も意味があります。私はこれを調べましたが、具体的に見つけることができません。つまり、レンダリングされた画面のエントリをクリックしてobject_detailを取得できるように、object_listテンプレートをどのように設定しますか?

以下が機能しています。私が尋ねている理由は、私が合理的なルートを取っているかどうか、またはこれを行うためのより良い、よりジャンゴイッシュな方法があるかどうかを確認することです。

人間が読める形式でデータベースエントリを識別できるように、 Unicodeが定義されたモデルがあります。object_listで生成されたページのリンクをクリックして、object_detailページに移動したいと思います。これを行う良い方法は、詳細のURLがhttp://www.example.com/xxx/5/のようになり、データベースの5行目の詳細ページを呼び出すシステムを作成することであることを理解しています。それで、私はちょうど次のことを思いついた、そして私の質問は私が正しい軌道に乗っているかということです。

次のリストビューのテンプレートページを作成しました。

<ul>
{% for aninpatient in object_list %}
<li><a href='/inpatient-detail/{{ aninpatient.id }}/'>{{ aninpatient }}</a></li>
{% endfor %}
</ul>

ここで、object_listはlist_detail.object_listジェネリックビューから取得されます。forループは、オブジェクトリストobject_listをステップスルーします。各行で、目的のhref "/ inpatient-detail / nn /"を参照するアンカーをhtmlに作成します。ここで、nnはデータベーステーブルの各行のidフィールドです。表示されるリンクはUnicode文字列であるため、クリック可能なリンクです。テンプレートを設定しましたが、これは問題なく機能します。

それで、私は正しい方向に進んでいますか?これを拡張して、テンプレートに編集リンクと削除リンクも含めることができるようにするのは簡単なようです。

モデルを利用して詳細ページを作成する一般的なビューはありますか?django.formsのModelFormヘルパーを使用してフォームオブジェクトを作成しました。これは入力フォームの作成に最適でした(自動検証を使用しました。すごいです!)。詳細ビューページを作成するためのようなものはありますか?

スティーブ

4

1 に答える 1

1

django <1.3を使用している場合は、基本的に完璧です。これらの一般的なビューは、ページをすばやく作成するのに非常に適しています。django 1.3を使用している場合は、クラスベースのジェネリックビューを使用することをお勧めします。あなたがそれらを理解したら、彼らはクレイジーです。

テンプレートでは、URLをハードコーディングする代わりに{%url%}タグを使用する必要があることに注意してください。urls.confファイルで、次のような名前付きURLを定義します。

url('inpatient-detail/(?P<inpatient_id>\d+)/$', 'your_view', name='inpatient_detail')

およびテンプレート内(django <1.3の場合):

<a href="{% url inpatient_detail inpatient_id=aninpatient.id %}">...</a>

1.3では、寿命をさらに延ばす新しいURLタグが利用可能になりました。

于 2011-06-29T05:07:23.540 に答える