15

特定のモデルのadmin_change.htmlテンプレートをオーバーライドした状況があります。次のようなファイルを作成しました。

/myproject/templates/admin/myapp/mymodel/change_form.html

次に、既存のオブジェクトインスタンスを編集している、オーバーライドされたchange_form.htmlテンプレートで、そのモデルインスタンス変数にアクセスして、それに関する詳細情報を表示できるようにします。

{% extends "admin/change_form.html" %}
{% block after_field_sets %}{{ block.super }}
Print my model here: {{ mymodel }}
Print foreignkey related records of my model:  
    {% for item in mymodel.items_set.all %} {{ item }} {% endfor %}
{% endblock %}

ただし、このモデルにアクセスするために使用する必要があるテンプレート変数が何と呼ばれるかはわかりません(渡されたとしても)。管理者のソースコードを調べてみましたが、すぐに迷子になります。拡張されたdjangoテンプレート内からこのモデルインスタンス変数にアクセスする方法を知っている人はいますか?

(注:上記のコードでは、{{mymodel}}への参照は正しくありません。ただし、重要なのは、テンプレートコードでそのような変数を使用してmymodelインスタンスを参照できるようにすることです。)

どんなアドバイスも大歓迎です。ありがとう、ジョー

4

2 に答える 2

21

この構文を使用してこれを行う方法を見つけたようです。

{% extends "admin/change_form.html" %}
{% block after_field_sets %}{{ block.super }}
Print my model here {{ original }}
Print foreignkey related records of my model:
{% for item in original.items_set.all %} {{ item }} {% endfor %}
{% endblock %}

すぐに答えて申し訳ありませんが、調査を始めた人に感謝します。おそらく誰かがこれが役立つと思うでしょう。これを行うためのより良い方法を見つけた場合は、コメントしてください。

于 2010-10-08T22:11:24.723 に答える
15

突っついているだけで、{{adminform.form.instance}}うまくいくようです。

于 2011-02-22T16:59:14.127 に答える