Temat: jeden url - kilka akcji renderujacych template
Michał Swat:
No nie do konca chodzi mi o templatetag - trzeba go umieszczac w kazdym templacie, to co chcialem uzyskac to wlasnie brak koniecznosci każdorazowo w kazdym templacie rozszerzania bloku np stopki
{% block footer %}
{% rysuj_stopke %}
{% endblock %}
(powiedzmy ze na 5 stronach chcę mieć inną niż na kolejnych pięciu a do wyświetlenia jej potrzeba wykonac pokazny kawalek kodu - oczywiscie to tylko przykład)
Ten blok mialby się sam "w tle" requestu rozszerzac o odpowiedni kontent w zaleznosci od urla(definiowaloby sie dla jakich urli wykonac jaka akcje rozszerzajaca tylko blok stopki).Ale faktycznie, chyba jestem za leniwy i trzeba zrobic zwyklego templatetaga.Michał Swat edytował(a) ten post dnia 23.03.10 o godzinie 09:54
Najlepiej przez templatetag tylko z możliwością sterowania zawartością stopki w zależności od modułu/widoku/akcji (+ zawsze zostawienie możliwości nadpisania całej stopki lub dopisania).. np:
base.html
{% load render_my_footer %}
<html>
...
{% block content %}{% endblock %}
...
{% block footer %}
{% render_my_footer my_var %}
{% endblock %}
</html>
view1
def index(request):
return render_to_response('1.html', {
'my_var': 'render_for_index',
}, context_instance=RequestContext(request))
view2
def forum(request):
return render_to_response('2.html', {
'my_var': 'render_for_forum',
}, context_instance=RequestContext(request))
3.html
{% block footer %}
{{ block.super }}
Add something to standard footer for 3.html
{% endblock %}
4.html
{% block footer %}
Overload footer for 4.html
{% endblock %}