Django Override Admin change_form.html Шаблон - отобразить связанную модель в шаблоне - PullRequest
12 голосов
/ 09 октября 2010

У меня есть ситуация, когда я переопределил шаблон 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.)

Любой совет очень ценится. Спасибо, Джо

Ответы [ 2 ]

17 голосов
/ 09 октября 2010

Похоже, я нашел способ сделать это, используя этот синтаксис.

{% 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 %}

Извините, что отвечаю так скоро, но спасибо всем, кто начал исследования. Возможно, кто-то найдет это полезным. Если вы видите лучший способ сделать это, не стесняйтесь комментировать.

11 голосов
/ 22 февраля 2011

Просто возни, кажется, что {{adminform.form.instance}} работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...