Unable to set up Jinja2 with Django -
i've installed django 1.9.7, , have pythons 3.4.3 , 2.7.10 on ubuntu.
these steps i've followed:
- made new project
django-admin startproject testproject
cd testproject/testproject
- made app within project
django-admin startapp testapp
- made directory templates in app
mkdir testapp/templates
, added basicindex.html
template in there edited
settings.py
change template backenddjango.template.backends.jinja2.jinja2
, editing line 57 of default settings file, , addtestproject.testapp
installed_apps
;templates
section therefore this:templates = [ { 'backend': 'django.template.backends.jinja2.jinja2', 'dirs': [], 'app_dirs': true, 'options': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
edited
urls.py
, addingfrom testproject.testapp import views
, url patternurl(r'^$', views.index),
edited
testapp/views.py
addingdef index(request): return render(request, 'index.html')
cd ..
- ran server
python3 manage.py runserver
, orpython manage.py runserver
-- similar effect - take browser
http://localhost:3000
i error. on command line this:
internal server error: / traceback (most recent call last): file "/usr/local/lib/python3.4/dist-packages/django/template/utils.py", line 86, in __getitem__ return self._engines[alias] keyerror: 'jinja2'
followed exception caused "during handling of above exception", matches exception see in browser:
environment: request method: request url: http://localhost:3000/ django version: 1.9.7 python version: 3.4.3 installed applications: ['django.contrib.staticfiles', 'testproject.testapp', 'webpack_loader'] installed middleware: ['django.middleware.security.securitymiddleware', 'django.middleware.common.commonmiddleware', 'django.middleware.clickjacking.xframeoptionsmiddleware'] traceback: file "/usr/local/lib/python3.4/dist-packages/django/template/utils.py" in __getitem__ 86. return self._engines[alias] during handling of above exception ('jinja2'), exception occurred: file "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py" in get_response 174. response = self.process_exception_by_middleware(e, request) file "/usr/local/lib/python3.4/dist-packages/django/core/handlers/base.py" in get_response 172. response = response.render() file "/usr/local/lib/python3.4/dist-packages/django/template/response.py" in render 160. self.content = self.rendered_content file "/usr/local/lib/python3.4/dist-packages/django/template/response.py" in rendered_content 135. template = self._resolve_template(self.template_name) file "/usr/local/lib/python3.4/dist-packages/django/template/response.py" in _resolve_template 90. new_template = self.resolve_template(template) file "/usr/local/lib/python3.4/dist-packages/django/template/response.py" in resolve_template 80. return select_template(template, using=self.using) file "/usr/local/lib/python3.4/dist-packages/django/template/loader.py" in select_template 55. engines = _engine_list(using) file "/usr/local/lib/python3.4/dist-packages/django/template/loader.py" in _engine_list 143. return engines.all() if using none else [engines[using]] file "/usr/local/lib/python3.4/dist-packages/django/template/utils.py" in 110. return [self[alias] alias in self] file "/usr/local/lib/python3.4/dist-packages/django/template/utils.py" in <listcomp> 110. return [self[alias] alias in self] file "/usr/local/lib/python3.4/dist-packages/django/template/utils.py" in __getitem__ 101. engine = engine_cls(params) file "/usr/local/lib/python3.4/dist-packages/django/template/backends/jinja2.py" in __init__ 35. self.env = environment_cls(**options) exception type: typeerror @ / exception value: __init__() got unexpected keyword argument 'context_processors'
i similar traces python 2.
i found this question has similar error message (keyerror: 'jinja2'
) seems separate problem, , this bug report has same error again solution install jinja2, jinja2 installed. @ least, can run python
or python3
, import jinja2
. pip
says jinja2 date.
i must missing crucial -- ideas?
the error context_processors
because jinja2 backend not support argument.
you should add additional backend templates
setting, rather replacing existing backend django jinja2
. see this answer more information. if replace existing backend, apps require django templates not work, including admin.
finally, jinja2 backend templates in testapp/jinja2
, not testapp/templates
.
Comments
Post a Comment