Revised r9566 slightly to be backwards compatible with versions 1.0 - 1.0.2.

Also documented the change. We prefer to load directory_index.html for static
directory listings, but if you have the (older style) "directory_index"
template and no .html version, we'll load that. This should stop a bunch of
mysterious breakages when people upgrade to Django 1.0.3 or Django 1.1. Also
keeps the docs in sync with released code.

Fixed #9993.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9725 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2009-01-09 12:41:07 +00:00
parent 0e59fbbd85
commit d32c290846
2 changed files with 11 additions and 2 deletions

View File

@ -91,7 +91,8 @@ DEFAULT_DIRECTORY_INDEX_TEMPLATE = """
def directory_index(path, fullpath): def directory_index(path, fullpath):
try: try:
t = loader.get_template('static/directory_index.html') t = loader.select_template(['static/directory_index.html',
'static/directory_index'])
except TemplateDoesNotExist: except TemplateDoesNotExist:
t = Template(DEFAULT_DIRECTORY_INDEX_TEMPLATE, name='Default directory index template') t = Template(DEFAULT_DIRECTORY_INDEX_TEMPLATE, name='Default directory index template')
files = [] files = []

View File

@ -90,7 +90,7 @@ You can customize the index view by creating a template called
* ``directory`` -- the directory name (a string) * ``directory`` -- the directory name (a string)
* ``file_list`` -- a list of file names (as strings) in the directory * ``file_list`` -- a list of file names (as strings) in the directory
Here's the default ``static/directory_index`` template: Here's the default ``static/directory_index.html`` template:
.. code-block:: html+django .. code-block:: html+django
@ -112,6 +112,14 @@ Here's the default ``static/directory_index`` template:
</body> </body>
</html> </html>
.. versionchanged:: 1.0.3
Prior to Django 1.0.3, there was a bug in the view that provided directory
listings. The template that was loaded had to be called
``static/directory_listing`` (with no ``.html`` extension). For backwards
compatibility with earlier versions, Django will still load templates with
the older (no extension) name, but it will prefer a the
``directory_index.html`` version.
Limiting use to DEBUG=True Limiting use to DEBUG=True
========================== ==========================