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

TemplateAssertionError: no filter named 'tojson' #100

Closed
coisnepe opened this issue Nov 15, 2017 · 2 comments
Closed

TemplateAssertionError: no filter named 'tojson' #100

coisnepe opened this issue Nov 15, 2017 · 2 comments

Comments

@coisnepe
Copy link

A 500 error is raised upon clicking on the name of a table on the homepage, say http://0.0.0.0:8001/ to http://0.0.0.0:8001/test_check-c1f4771/users The API part seems to function as intended, though...

2017-11-15 14:33:57 - (sanic)[ERROR]: Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/sanic/app.py", line 503, in handle_request
    response = await response
  File "/usr/local/lib/python3.5/dist-packages/datasette/app.py", line 155, in get
    return await self.view_get(request, name, hash, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/datasette/app.py", line 219, in view_get
    **context,
  File "/usr/local/lib/python3.5/dist-packages/sanic_jinja2/__init__.py", line 84, in render
    return html(self.render_string(template, request, **context))
  File "/usr/local/lib/python3.5/dist-packages/sanic_jinja2/__init__.py", line 81, in render_string
    return self.env.get_template(template).render(**context)
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 812, in get_template
    return self._load_template(name, self.make_globals(globals))
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 786, in _load_template
    template = self.loader.load(self, name, globals)
  File "/usr/lib/python3/dist-packages/jinja2/loaders.py", line 125, in load
    code = environment.compile(source, name, filename)
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 565, in compile
    self.handle_exception(exc_info, source_hint=source_hint)
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 754, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3/dist-packages/jinja2/_compat.py", line 37, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.5/dist-packages/datasette/templates/table.html", line 29, in template
    <pre>params = {{ query.params|tojson(4) }}</pre>
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 515, in _generate
    return generate(source, self, name, filename, defer_init=defer_init)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 62, in generate
    generator.visit(node)
  File "/usr/lib/python3/dist-packages/jinja2/visitor.py", line 38, in visit
    return f(node, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 849, in visit_Template
    self.blockvisit(block.body, block_frame)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 492, in blockvisit
    self.visit(node, frame)
  File "/usr/lib/python3/dist-packages/jinja2/visitor.py", line 38, in visit
    return f(node, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 1172, in visit_If
    self.blockvisit(node.body, if_frame)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 492, in blockvisit
    self.visit(node, frame)
  File "/usr/lib/python3/dist-packages/jinja2/visitor.py", line 38, in visit
    return f(node, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 1353, in visit_Output
    self.visit(argument, frame)
  File "/usr/lib/python3/dist-packages/jinja2/visitor.py", line 38, in visit
    return f(node, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 1565, in visit_Filter
    self.fail('no filter named %r' % node.name, node.lineno)
  File "/usr/lib/python3/dist-packages/jinja2/compiler.py", line 427, in fail
    raise TemplateAssertionError(msg, lineno, self.name, self.filename)
jinja2.exceptions.TemplateAssertionError: no filter named 'tojson'

2017-11-15 14:33:57 - (network)[INFO][127.0.0.1:41316]: GET http://0.0.0.0:8001/test_check-c1f4771/users  500 144
2017-11-15 14:33:57 - (network)[INFO][127.0.0.1:41316]: GET http://0.0.0.0:8001/favicon.ico  200 0
@simonw
Copy link
Owner

simonw commented Nov 16, 2017

Aha... it looks like this is a Jinja version problem: ansible/ansible#25381 (comment)

Datasette depends on sanic-jinja2 - and that doesn't depend on a particular jinja2 version: https://github.com/lixxu/sanic-jinja2/blob/7e9520850d8c6bb66faf43b7f252593d7efe3452/setup.py#L22

So if you have an older version of Jinja installed, stuff breaks.

@simonw simonw closed this as completed in 9f47b6e Nov 16, 2017
@coisnepe
Copy link
Author

@simonw I see. I upgraded sanic-jinja2 and jinja2: it now works flawlessly. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants