Opened 10 years ago
Closed 9 years ago
#24527 closed Bug (duplicate)
Using standalone templates gives confusing error message
Reported by: | Chris Jerdonek | Owned by: | nobody |
---|---|---|---|
Component: | Documentation | Version: | 1.7 |
Severity: | Normal | Keywords: | templates, standalone |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
I'm trying to use Django templates in "standalone" fashion, and I'm getting the following AppRegistryNotReady
error at bottom (with version 1.7.7).
The error is confusing because my understanding from the documentation is that calling the following is sufficient before using Django's template code:
django.conf.settings.configure()
Here is the stack trace:
File "/Users/chris/dev/.virtualenvs/my_package/scripts/../pyelect/htmlgen.py", line 171, in render_template template = get_template(template_name, dirs=[]) File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/template/loader.py", line 144, in get_template template, origin = find_template(template_name, dirs) File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/template/loader.py", line 126, in find_template loader = find_template_loader(loader_name) File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/template/loader.py", line 98, in find_template_loader TemplateLoader = import_string(loader) File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/utils/module_loading.py", line 26, in import_string module = import_module(module_path) File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/importlib/__init__.py", line 109, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 2254, in _gcd_import File "<frozen importlib._bootstrap>", line 2237, in _find_and_load File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked File "<frozen importlib._bootstrap>", line 1129, in _exec File "<frozen importlib._bootstrap>", line 1471, in exec_module File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/template/loaders/app_directories.py", line 33, in <module> app_template_dirs = calculate_app_template_dirs() File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/template/loaders/app_directories.py", line 21, in calculate_app_template_dirs for app_config in apps.get_app_configs(): File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/apps/registry.py", line 137, in get_app_configs self.check_apps_ready() File "/Users/chris/dev/.virtualenvs/my_package/lib/python3.4/site-packages/django/apps/registry.py", line 124, in check_apps_ready raise AppRegistryNotReady("Apps aren't loaded yet.") django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
Change History (6)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
In addition to configuring the settings, you must call django.setup()
.
The documentation could be improved.
comment:3 by , 10 years ago
Strictly speaking, it's possible you might not need to call django.setup()
. (I'm pretty sure I was able to get things workings by setting TEMPLATE_LOADERS
only to use the file loader.) However, once I started using include
I started running into problems again (I believe because that causes get_template()
to be called without the dirs
argument.)
comment:4 by , 10 years ago
Component: | Uncategorized → Documentation |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:5 by , 9 years ago
Easy pickings: | set |
---|
comment:6 by , 9 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Seems to me this is addressed by the docs added in #25156.
Investigating further, it looks like this is because
django.template.loaders.app_directories.Loader
is part of the defaultTEMPLATE_LOADERS
setting. But the documentation for using templates in standalone doesn't say this setting needs to be manually set.