2010-10-08 3 views
12

У меня есть ситуация, когда я переопределил шаблон admin_change.html для данной модели. Я создал файл, такие как:Django Override Admin change_form.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.)

Любые советы очень ценятся. Thanks, Joe

ответ

16

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

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

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

+0

и что такое оригинал? – Mariuz

+0

original - это переменная, представляющая объект, который редактируется в форме изменения. Если вы просматривали/admin/auth/user /, то оригинал был бы экземпляром пользователя, например. –

+0

Кто-нибудь знает, где мы можем найти документацию на 'original' –

11

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

Смежные вопросы