djangoでは、私が一般的に好むはずですが、なぜですか?できるだけ少ない「ルートオブジェクト」(例えば要求)を通過Django:複雑なテンプレート変数名や複雑なビューを持つべきでしょうか?
長いテンプレート変数名、:
{% if request.current_page.get_children.0.get_absolute_url %}
かが異なる「ルートオブジェクト」の地獄の多くを渡しておきます単純なテンプレート変数名:
どこかマイルで{% if first_child_url %}
例えば、ddle。
children
{% if children.0.get_absolute_url %}
または
first_child
{% if first_child.get_absolute_url %}
を渡すを渡す私は眺めに私は必要なすべての時間を変更する必要はありませんので、最初のアプローチの利点は、疎結合であります別の変数を使う。第2のアプローチの利点は、テンプレートがより簡単でより清潔であることである。
コンテキスト変数を追加することができない汎用ビュー(またはサードパーティビュー)を使用している場合(つまり、コンテキスト変数を追加する唯一の方法はミドルウェアまたはコンテキストプロセッサを作成することです)、その変更は何ですか?
余分なコンテキストを一般的なビュー(少なくともDjango 1.3では)に追加できます。それをチェックしてください(https://docs.djangoproject.com/ja/1.3/ref/generic-views/)変数extra_contextを見つけたら、そこに何かを追加することができます。 – Hassek
@Hassek:私は[django-cms](https://www.django-cms.org/)を使用しています。そのビューではextra_contextを渡すことはできません。何かが見つからないかもしれませんが、他の方法では、ミドルウェアやコンテキストプロセッサ以外のdjango-cmsページに余分なコンテキスト変数を渡すことができます。 –
ああ、よくルールを変更します。 django-cmsをまったく使っていない:p – Hassek