Django template doc wymieniono następujące dla biegnących szablonów:Jak używać zmiennej rozszerzającej szablon Django?
{% extends variable %}
Gdzie mogę zdefiniować zmienną? Czy to z views.py?
Django template doc wymieniono następujące dla biegnących szablonów:Jak używać zmiennej rozszerzającej szablon Django?
{% extends variable %}
Gdzie mogę zdefiniować zmienną? Czy to z views.py?
{% 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ż.
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.