2010-10-08 15 views
12

Mam sytuację, w której nadpisałem szablon admin_change.html dla danego modelu. I utworzeniu pliku, takie jak:Django Override Admin change_form.html Szablon - wyświetlanie skojarzonego modelu w szablonie

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

Następnie w overrided szablonu change_form.html, gdzie jestem edycji istniejącej instancji obiektu, chcę mieć dostęp do tej zmiennej instancji modelu, więc mogę wyświetlać więcej informacje na ten temat.

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

Jednak nie wiem co zmienna szablon nazywa, że ​​powinienem użyć aby uzyskać dostęp do tego modelu (nawet jeśli jest ona przekazywana w ogóle). Próbowałem przeszukać kod źródłowy administratora, ale szybko się zgubiłem. Czy ktoś wie, jak uzyskać dostęp do tej zmiennej instancji modelu z rozszerzonego szablonu django?

(UWAGA: w powyższym kodzie odniesienie do {{mymodel}} jest niepoprawne, ale chodzi o to, że chcę móc użyć takiej zmiennej w kodzie mojego szablonu, aby odwołać się do instancji mymodelu.)

Każda rada jest doceniana. Dzięki, Joe

Odpowiedz

16

Wygląda na to, że znalazłem sposób, aby to zrobić, używając tej składni.

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

Przepraszamy za odpowiedź tak szybko, ale dzięki każdemu, kto rozpoczął badania. Być może ktoś uzna to za pomocne. Jeśli widzisz lepszy sposób, możesz to skomentować.

+0

i co jest oryginalne? – Mariuz

+0

original jest zmienną reprezentującą obiekt edytowany w formularzu zmiany. Jeśli oglądałeś/admin/auth/user /, oryginalny byłby przykładem użytkownika, na przykład. –

+0

czy ktoś wie, gdzie możemy znaleźć dokumentację "oryginalnego" –

11

Po prostu szturchanie, wydaje się, że działa {{adminform.form.instance}}.

Powiązane problemy