Django-downloadview

Latest version: v2.3.0

Safety actively analyzes 706259 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 3

1.3

----------------

Big refactoring around middleware configuration, API readability and
documentation.

- Bugfix 57 - ``PathDownloadView`` opens files in binary mode (was text mode).

- Bugfix 48 - Fixed ``basename`` assertion in ``assert_download_response``:
checks ``Content-Disposition`` header.

- Bugfix 49 - Fixed ``content`` assertion in ``assert_download_response``:
checks only response's ``streaming_content`` attribute.

- Bugfix 60 - ``VirtualFile.__iter__`` uses ``force_bytes()`` to support both
"text-mode" and "binary-mode" content.
See https://code.djangoproject.com/ticket/21321

- Feature 50 - Introduced ``django_downloadview.DownloadDispatcherMiddleware``
that iterates over a list of configurable download middlewares. Allows to
plug several download middlewares with different configurations.

This middleware is mostly dedicated to internal usage. It is used by
``SmartDownloadMiddleware`` described below.

- Feature 42 - Documentation shows how to stream generated content (yield).
Introduced ``django_downloadview.StringIteratorIO``.

- Refactoring 51 - Dropped support of Python 2.6

- Refactoring 25 - Introduced ``django_downloadview.SmartDownloadMiddleware``
which allows to setup multiple optimization rules for one backend.

Deprecates the following settings related to previous single-and-global
middleware:

* ``NGINX_DOWNLOAD_MIDDLEWARE_MEDIA_ROOT``
* ``NGINX_DOWNLOAD_MIDDLEWARE_MEDIA_URL``
* ``NGINX_DOWNLOAD_MIDDLEWARE_EXPIRES``
* ``NGINX_DOWNLOAD_MIDDLEWARE_WITH_BUFFERING``
* ``NGINX_DOWNLOAD_MIDDLEWARE_LIMIT_RATE``

- Refactoring 52 - ObjectDownloadView now inherits from SingleObjectMixin and
BaseDownloadView (was DownloadMixin and BaseDetailView).
Simplified DownloadMixin.render_to_response() signature.

- Refactoring 40 - Documentation includes examples from demo project.

- Refactoring 39 - Documentation focuses on usage, rather than API. Improved
narrative documentation.

- Refactoring 53 - Added base classes in ``django_downloadview.middlewares``,
such as ``ProxiedDownloadMiddleware``.

- Refactoring 54 - Expose most Python API directly in `django_downloadview`
package. Simplifies ``import`` statements in client applications.
Splitted nginx module in a package.

- Added unit tests, improved code coverage.

1.2

----------------

Bugfixes and documentation improvements.

- Bugfix 26 - Prevented computation of virtual file's size, unless the file
wrapper implements was_modified_since() method.

- Bugfix 34 - Improved support of files that do not implement modification
time.

- Bugfix 35 - Fixed README conversion from reStructuredText to HTML (PyPI).

1.1

----------------

Various improvements.
Contains **backward incompatible changes.**

- Added HTTPDownloadView to proxy to arbitrary URL.

- Added VirtualDownloadView to support files living in memory.

- Using StreamingHttpResponse introduced with Django 1.5. Makes Django 1.5 a
requirement!

- Added ``django_downloadview.test.assert_download_response`` utility.

- Download views and response now use file wrappers. Most logic around file
attributes, formerly in views, moved to wrappers.

- Replaced DownloadView by PathDownloadView and StorageDownloadView. Use the
right one depending on the use case.

1.0

----------------

- Introduced optimizations for Nginx X-Accel: a middleware and a decorator
- Introduced generic views: DownloadView and ObjectDownloadView
- Initialized project


.. rubric:: Notes & references

.. target-notes::

.. _`milestones`: https://github.com/jazzband/django-downloadview/milestones

Page 3 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.