Skip to content

Instantly share code, notes, and snippets.

@issackelly
Created April 19, 2011 16:48
Show Gist options
  • Save issackelly/928783 to your computer and use it in GitHub Desktop.
Save issackelly/928783 to your computer and use it in GitHub Desktop.
Django Template {{ block.super }} example
# Template: A.html
<html>
<head></head>
<body>
{% block hello %}
HELLO
{% endblock %}
</body>
</html>
# Template B.html
{% extends "A.html" %}
{% block hello %}
World
{% endblock %}
# Rendered Template B
<html>
<head></head>
<body>
World
</body>
</html>
# Template C
{% extends "A.html" %}
{% block hello %}
{{ block.super }} World
{% endblock %}
# Rendered Template C
<html>
<head></head>
<body>
Hello World
</body>
</html>
@jaskaran1989
Copy link

thanks for explaining this clearly

@juliotoscano
Copy link

Thanks so much!

@emm7494
Copy link

emm7494 commented Jan 11, 2017

Very helpful

@emacstheviking
Copy link

Surely that's wrong??? Template C should inherit from template B other it won't work will it?

@Ausqa21
Copy link

Ausqa21 commented Jan 27, 2017

Thanks a lot for the explanation

@nagracks
Copy link

nagracks commented Mar 2, 2017

Thanx

@onitonitonito
Copy link

very helpful! Thanx

@diek
Copy link

diek commented Sep 22, 2017

Nice example, I created a simple working version. https://github.com/diek/superduper

@artu-hnrq
Copy link

Thanks. Helped me to understand it more clearly :-)

Yeah!

@scotth527
Copy link

On line 36 why is it not HELLO World? If in the parent template the HELLO is in all caps?

@artu-hnrq
Copy link

artu-hnrq commented Apr 16, 2021

On line 36 why is it not HELLO World? If in the parent template the HELLO is in all caps?

You are right, @scotth527!
{{ block.super }} will render the same content present in the current block of extended template.
Thus, in this case, HELLO World

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment