from django.template import Node class PrettyPrintNode(Node): def __init__(self, nodelist): self.nodelist = nodelist def render(self, context): from bs4 import BeautifulSoup html = BeautifulSoup(self.nodelist.render(context)) return html.prettify() @register.tag() def pretty(parser,token): nodelist = parser.parse(('endpretty',)) parser.delete_first_token() return PrettyPrintNode(nodelist)