#23525: admin/docs/filters|tags __file__ attribute errors for egg extensions
-------------------------+-------------------------------------------------
Reporter: | Owner: nobody
welbornprod | Status: new
Type: Bug | Version: 1.7
Component: | Keywords: __file__ AttributeError filters
contrib.admindocs | tags
Severity: Normal | Has patch: 1
Triage Stage: | UI/UX: 0
Unreviewed |
Easy pickings: 1 |
-------------------------+-------------------------------------------------
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:
{{{#!python
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:
{{{#!python
try:
# ...same code from above.
except OSError, AttributeError:
libraries = []
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/23525>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/054.181533c19d76ec6590f6c12db69a1fd3%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.