2009-08-25 12 views

Odpowiedz

16

{% extends %} faktycznie pobiera ciąg znaków - położenie szablonu do przedłużenia.

Jeśli chcesz zadeklarować tę zmienną w Pythonie, przekaż ją do programu ładującego szablon za pomocą słownika. Przykład:

import django.http 
from django.shortcuts import render_to_response 
# ... 
INDEX_EXTEND = "index.html" 
# ... 
def response(request) : 
    return render_to_response("myview.html", {'extend': INDEX_EXTEND}) 

Następnie w widoku:

{% extends extend %} 

Zauważ, że 'extend' została uchwalona w słowniku przekazany do szablonu. Możesz oczywiście zdefiniować zmienną nigdzie indziej w swoim pliku .py - lub nawet w deklaracji słownika.

Pamiętaj, że {% extends %} może być także wywołana jako takie:

{% extends "index.html" %} 

Wyjazd docs na Template inheritance też.

6

Tak, to tylko zmienna kontekstowa, jak każda inna.

Nie musisz używać zmiennej - {% extends "main.html" %} jest całkowicie akceptowalna, w rzeczywistości preferowana, chyba że musisz zrobić coś dynamicznego z dziedziczeniem szablonów.