ビューはビュー関連のロジックが含まれている必要があります。
- ビューは、処理要求のためのものであり、ユーザー認証/許可のチェック含まれていることを
- 要求されたデータを提供します指定されたパラメータを扱う場合
- 要求されたデータが取れない場合は、コードをより適切な場所に委託する(お使いのモデルやフォーム定義または別のカスタムの場所)
アウトソーシングの計算は、それらを再利用可能にし、小さなそれらを保つために、あなたのビューからこれらのメソッドを呼び出します。
でも、多分あなたはextends
とinclude
のテンプレートが必要です。
extends
を使用すると、HTMLコードの基本レイアウトを作成し、他の場所でレンダリングできる特定のブロックを定義することができます。例? OK。あなたが作成することができます。また
{% extends "base.html" %}
{% block title %}My Page{% endblock %}
{% block content %}
<h2>My Page</h2>
<div>lorem ipsum</div>
{% endblock %}
、:
base.html:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{% block title %}My Site{% endblock %}</title>
</head>
<body>
<div id="header">
<h1>My Site</h1>
</div>
{% block content %}{% endblock %}
</body>
</html>
その後、他のテンプレートで、あなたは私たちが基本テンプレートで定義されたブロックtitle
とcontent
を上書きすることができます次のようなサブテンプレート、_item.html
:
<li class="item">
<span>{{ something.foo }}</span>
<strong>{{ something.bar }}</span>
</li>
あなたは、他のテンプレートでそのスニペットを含めるとパラメータの任意の数渡すことができます。
{% for something in mymodel.mym2mrelation.all %}
{% include "_item.html" with something=something only %}
{% endfor %}
当然、あなたは両方の概念を組み合わせることができます。ように:
{% extends "base.html" %}
{% block title %}My Page{% endblock %}
{% block content %}
<h2>My Page</h2>
<div>lorem ipsum</div>
<ul>
{% for something in mymodel.mym2mrelation.all %}
{% include "_item.html" with something=something only %}
{% endfor %}
</ul>
{% endblock %}
私は助けてくれることを望みます。
出典
2012-05-15 20:43:42
Alp
サブビューは独自の用語です。彼らは何を返すかによって決まります。 html?データ? – jdi