6

より良いコード構成について簡単な質問があると思います。

これらのアプリをプレゼンテーション層で表現する方法も実装する複数のアプリがあるとします。

もちろん、フレームを使用せずに1つのページに複数のアプリを表示する必要がある場合、コードを整理する方法を理解しようとしていますか?

簡単な例: 対応するモデルとビューを実装する 2 つのアプリ (app1 と app2) があるとします。ここで、これら 2 つのビューのプレゼンテーションを含むインデックス ページが必要です。モデルに直接アクセスする代わりに、アプリ ビューを引き続き使用する汎用ビューを実装するにはどうすればよいですか? アプリで引き続きビューを制御したいと思います。

ありがとう

4

2 に答える 2

5

render_to_stringショートカットを使用できると思いますしたがって、アプリビューに次のように配置します。

render_to_string(somestuff) # instead of render() or render_to_responce()

次に、インデックス ビューで次のようにします。

render(request, 'index.html', {'block1': view1(request), 'block2': view2(request)})

PS: また、これを書いた後は、見た目があまり良くありません (頭の中では良く見えました :))。

于 2011-11-16T09:45:08.807 に答える
3

素晴らしい質問です。私がどのようにそれをしたか教えてください。

(アプリ固有の) カスタム テンプレート タグを使用しました。これらのテンプレート タグは、テンプレートで使用できるものをコンテキストに追加します。カスタム テンプレート タグに関するドキュメントから詳細を読むことができます。

Practical django Projects 2nd editionという良い本がありますが、これは少し古くなっていると思いますが、プロジェクトの編成について素晴らしい洞察を与えてくれます。

于 2011-11-16T10:06:30.813 に答える