Opened 12 years ago

Closed 11 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 Chris Jerdonek, 12 years ago

Investigating further, it looks like this is because django.template.loaders.app_directories.Loader is part of the default TEMPLATE_LOADERS setting. But the ​documentation for using templates in standalone doesn't say this setting needs to be manually set.

comment:2 by Aymeric Augustin, 12 years ago

In addition to configuring the settings, you must call django.setup().

The documentation could be improved.

comment:3 by Chris Jerdonek, 12 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 Tim Graham, 12 years ago

Component: Uncategorized → Documentation
Triage Stage: Unreviewed → Accepted

comment:5 by James Bennett, 11 years ago

Easy pickings: set

comment:6 by Tim Graham, 11 years ago

Resolution: → duplicate
Status: new → closed

Seems to me this is addressed by the docs added in #25156.

Note: See TracTickets for help on using tickets.
Back to Top