Opened 10 years ago

Last modified 10 years ago

#23525 closed Bug

admin/docs/filters|tags __file__ attribute errors for egg extensions — at Initial Version

Reported by: Welborn Productions Owned by: nobody
Component: contrib.admindocs Version: 1.7
Severity: Normal Keywords: __file__ AttributeError filters tags
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Accessing hostname.com/admin/doc/filters and hostname.com/admin/doc/tags causes an Internal Server Error on Django 1.7.

In django/contrib/admindocs/views.py, the function load_all_installed_template_libraries() already gracefully fails on OSError when finding python files. However, when the module being checked has no __file__ attribute the error bubbles up and causes an Internal Server Error.

Someone on django-users suggested that it may be because some extensions are installed as eggs. I've attached a naive patch that simply adds AttributeError to the caught exceptions, causing the function to fail gracefully instead of letting it bubble up.

The code that triggers the error:

try:
    libraries = [
        os.path.splitext(p)[0]
        for p in os.listdir(os.path.dirname(upath(mod.__file__)))
        if p.endswith('.py') and p[0].isalpha()
    ]
except OSError:
    libraries = []

I've simply added another error to that block:

try:
   # ...same code from above.
except OSError, AttributeError:
    libraries = []

Change History (1)

by Welborn Productions, 10 years ago

Fixed patch for file AttributeError (naive fix).

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