TemplateNotFoundError althought template should be there
Cereal2nd opened this issue · 4 comments
>>> from jinja2 import FileSystemLoader
>>> b = FileSystemLoader('/home/cereal/domogik/src/domogik/admin/themes/default/templates')
>>> b.list_templates()
['account_edit.html', 'accounts.html', 'accounts_edit.html', 'base/base.html', 'base/nav.html', 'base/wtf.html', 'client.html', 'client_config.html', 'client_detected.html', 'client_device_edit.html', 'client_device_new.html', 'client_device_new_wiz.html', 'client_devices.html', 'client_menu.html', 'client_sensor.html', 'clients.html', 'configuration.html', 'index.html', 'login.html', 'orphans.html', 'person_edit.html', 'persons.html', 'rest.html', 'scenario.html', 'scenario_edit.html']
So jinja2 finds the templates in the directory.
now in my application i get the following
/home/cereal/domogik/src/domogik/admin/themes/default/templates
2015-01-22 20:29:40,395 domogik.admin.application ERROR Exception on /accounts [GET]
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/local/lib/python2.7/dist-packages/flask_login.py", line 758, in decorated_view
return func(*args, **kwargs)
File "/home/cereal/domogik/src/domogik/admin/views/account.py", line 33, in accounts
mactive='auth'
File "/home/cereal/domogik/src/domogik/admin/application.py", line 77, in render_template
return render_theme_template('default', template, **context)
File "/usr/local/lib/python2.7/dist-packages/flask_themes2/__init__.py", line 132, in render_theme_template
return render_template(template_name, **context)
File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/templating.py", line 127, in render_template
return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 830, in get_or_select_template
return self.get_template(template_name_or_list, parent, globals)
File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 791, in get_template
return self._load_template(name, self.make_globals(globals))
File "/usr/lib/python2.7/dist-packages/jinja2/environment.py", line 765, in _load_template
template = self.loader.load(self, name, globals)
File "/usr/lib/python2.7/dist-packages/jinja2/loaders.py", line 113, in load
source, filename, uptodate = self.get_source(environment, name)
File "/usr/local/lib/python2.7/dist-packages/Flask-0.10.1-py2.7.egg/flask/templating.py", line 64, in get_source
raise TemplateNotFound(template)
TemplateNotFound: accounts.html
ERROR:domogik.admin.application:Exception on /accounts [GET]
and this is my render method
def render_template(template, **context):
p = ThemeManager(app, app_identifier='domogik-admin')
print p.themes['default'].templates_path
return render_theme_template('default', template, **context)
But still i get a templateNotFOundError, althought its there
note, for some templates it works perfectly, for others that are in the same dir it does not work
Can you give an example of template files it works for and those it won't?
It seems odd that you'd be able to use some templates and not others, even if they're in the same directory.
ticket can be closed, i solved it.
i had template A
this includes template B
and template B includes Template C
for the include of template C i missed the theme(c.html) part, so i had the regular include.
because of this template C was not found (what is corect), but the error i got is that template A was not found ...
Ah, good old deceptive error messages.
No problem.