Commit be3d02d9 by Pieter van de Bruggen

Fix the partial recursion error.

parent c39b8b84
...@@ -15,6 +15,14 @@ def call(view, x, template=None): ...@@ -15,6 +15,14 @@ def call(view, x, template=None):
x = x(view, template) x = x(view, template)
return unicode(x) return unicode(x)
def partialTag(name):
def func(self):
tmpl = Template(self.partial(name))
tmpl.view = self
parsed = tmpl._parse()
return ''.join(map(call, [self] * len(parsed), parsed))
return func
def sectionTag(name, parsed, template, delims): def sectionTag(name, parsed, template, delims):
def func(self): def func(self):
data = self.get(name) data = self.get(name)
...@@ -150,9 +158,7 @@ class Template(object): ...@@ -150,9 +158,7 @@ class Template(object):
self.otag, self.ctag = name.split() self.otag, self.ctag = name.split()
self._compile_regexps() self._compile_regexps()
elif captures['tag'] == '>': elif captures['tag'] == '>':
tmpl = Template(self.view.partial(name)) buffer.append(partialTag(name))
tmpl.view = self.view
buffer += tmpl._parse()
elif captures['tag'] in ['#', '^']: elif captures['tag'] in ['#', '^']:
try: try:
self._parse(template, name, pos) self._parse(template, name, pos)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment