に渡されるコンテキストには、結果リストを含むオブジェクトであるオブジェクトに対応するエントリがchange_list.html
含まれます。cl
contrib.admin.views.main.ChangeList
次のように、結果リストに直接アクセスできます。
{% for object in cl.result_list %}
{{ object.field }}
{% endfor %}
変更リストの結果は、テンプレート タグchange_list_results.html
を使用してテンプレートの一部としてレンダリングされます。テンプレートには、テンプレートをレンダリングするときに存在するコンテキスト変数もありresult_list
ます。change_list_results.html
cl
result
あなたの例でDjangoテンプレートが反復されている場合、事前にレンダリングされたhtmlをresult
含むResultList
オブジェクトであり、レンダリングされている基礎となるオブジェクトは利用できません。
このレベルでテンプレートをオーバーライドするにはresult_list
、各結果に属性として添付された基礎となるオブジェクトを含む結果のリストを返すことができる、独自のタイプ テンプレート タグを実装する必要がある可能性があります。
要するに、次のことが必要になる可能性があります。
result_list
Django の実装に基づいて、独自のテンプレート タグを作成します。事前にレンダリングされたhtmlresults
のリストとしてコンテキストを返すのではなく、html にレンダリングできる両方のオブジェクトを含むオブジェクトと、後でテンプレートで使用するために添付された元の基本オブジェクトを持つ各アイテムを返します。ResultList
results
- テンプレートをオーバーライドして、Django のテンプレート タグ
change_list.html
ではなく、新しいタグを使用します。result_list
- テンプレートをオーバーライドして、
change_list_results.html
基になる各オブジェクトの存在など、テンプレート タグから入手できる追加情報を利用します。
お気づきかもしれませんが、管理アプリはレイヤーを介して非常に緊密に統合されています。その操作を変更することは簡単ではなく、ソースの複数の部分で変更とオーバーライドが必要です。