Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

1

Organize your Django 
Templates! 
(or you will go to hell)

2

Basics 
● One template directory per Django 
application 
/apps/myapp/templates/ 
● Put snippets in separate directory 
/apps/myapp/templates/_includes/

3

Step 1 - Files 
base.html: 
{% block head %} 
{% endblock head %} 
{% block content %} 
{% endblock content %} 
page.html: 
{% extends “base.html” %} 
{% block content %} 
{% endblock content %}

4

Step 1 - Structure 
/templates/base.html 
/templates/page.html

5

Step 2 - Files 
base.html: 
{% include “base_head.html” %} 
{% block content %} 
{% endblock content %} 
page.html: 
{% extends “base.html” %} 
{% block content %} 
{% endblock content %}

6

Step 2 - Structure 
/templates/base.html 
/templates/page.html 
/templates/_includes/base_head.html

7

Step 3 - Files (1/2) 
base.html: 
{% block head_inc %} 
{% include “head.html” %} 
{% block head_inc %} 
{% block content %} 
{% endblock content %} 
prod.html: 
{% extends “base.html” %} 
{% block head_inc %} 
{% include “prod_head.html” %} 
{% block head_inc %} 
{% block content %} 
{% endblock content %}

8

Step 3 - Files (2/2) 
prod_head.html: 
{% extends “base_head.html” %} 
{% block subnav %} 
{% endblock subnav %}

9

Step 3 - Structure 
/templates/base.html 
/templates/page.html 
/templates/prod.html 
/templates/_includes/base_head.html 
/templates/_includes/prod_head.html

10

Thank you for listening! 
Anton Pirker 
anton@ignaz.at 
@antonpirker 
http://goo.gl/SV7N62

11

base.html 
header 
content 
product.html 
content 
base.html: 
{% block header %} 
{% endblock header %} 
{% block content %} 
{% endblock content %} 
product.html: 
{% extends “base.html” %} 
{% block content %} 
{% endblock content %}

More Related Content

Organize your Django templates

  • 1. Organize your Django Templates! (or you will go to hell)
  • 2. Basics ● One template directory per Django application /apps/myapp/templates/ ● Put snippets in separate directory /apps/myapp/templates/_includes/
  • 3. Step 1 - Files base.html: {% block head %} {% endblock head %} {% block content %} {% endblock content %} page.html: {% extends “base.html” %} {% block content %} {% endblock content %}
  • 4. Step 1 - Structure /templates/base.html /templates/page.html
  • 5. Step 2 - Files base.html: {% include “base_head.html” %} {% block content %} {% endblock content %} page.html: {% extends “base.html” %} {% block content %} {% endblock content %}
  • 6. Step 2 - Structure /templates/base.html /templates/page.html /templates/_includes/base_head.html
  • 7. Step 3 - Files (1/2) base.html: {% block head_inc %} {% include “head.html” %} {% block head_inc %} {% block content %} {% endblock content %} prod.html: {% extends “base.html” %} {% block head_inc %} {% include “prod_head.html” %} {% block head_inc %} {% block content %} {% endblock content %}
  • 8. Step 3 - Files (2/2) prod_head.html: {% extends “base_head.html” %} {% block subnav %} {% endblock subnav %}
  • 9. Step 3 - Structure /templates/base.html /templates/page.html /templates/prod.html /templates/_includes/base_head.html /templates/_includes/prod_head.html
  • 10. Thank you for listening! Anton Pirker anton@ignaz.at @antonpirker http://goo.gl/SV7N62
  • 11. base.html header content product.html content base.html: {% block header %} {% endblock header %} {% block content %} {% endblock content %} product.html: {% extends “base.html” %} {% block content %} {% endblock content %}