Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.9.5: Inheriting from a template containing {{ .. }} fails with a custom Context class #675

Closed
ThiefMaster opened this issue Jan 30, 2017 · 0 comments
Labels

Comments

@ThiefMaster
Copy link
Member

@ThiefMaster ThiefMaster commented Jan 30, 2017

Minimal example:

from jinja2 import DictLoader, Environment
from jinja2.runtime import Context


class MyContext(Context):
    pass


class MyEnvironment(Environment):
    context_class = MyContext


loader = DictLoader({'base': '{{ foobar }}',
                     'test': '{% extends "base" %}'})
env = MyEnvironment(loader=loader)
print env.get_template('test').render(foobar='test')

Traceback:

Traceback (most recent call last):
  File "test.py", line 16, in <module>
    print env.get_template('test').render(foobar='test')
  File "/home/adrian/dev/indico/env/lib/python2.7/site-packages/jinja2/environment.py", line 1008, in render
    return self.environment.handle_exception(exc_info, True)
  File "/home/adrian/dev/indico/env/lib/python2.7/site-packages/jinja2/environment.py", line 780, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "<template>", line 1, in top-level template code
  File "<template>", line 1, in top-level template code
TypeError: resolve_or_missing() takes at least 2 arguments (1 given)

As you can see just having a custom Context class, even without changing anything in there, breaks as soon as the base template contains a variable. This is most likely caused by the metaclass added in c6ddeb7.

@mitsuhiko mitsuhiko closed this in a8a9ec2 Apr 3, 2017
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 13, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant