Fixed #21548 -- Added FileExtensionValidator and validate_image_file_extension.

This commit is contained in:
Berker Peksag 2016-03-26 22:09:08 +02:00 committed by Tim Graham
parent c9d0a0f7f4
commit 12b4280444
6 changed files with 141 additions and 6 deletions

View file

@ -279,3 +279,30 @@ to, or in lieu of custom ``field.clean()`` methods.
``decimal_places``.
- ``'max_whole_digits'`` if the number of whole digits is larger than
the difference between ``max_digits`` and ``decimal_places``.
``FileExtensionValidator``
--------------------------
.. class:: FileExtensionValidator(allowed_extensions, message, code)
.. versionadded:: 1.11
Raises a :exc:`~django.core.exceptions.ValidationError` with a code of
``'invalid_extension'`` if the ``value`` cannot be found in
``allowed_extensions``.
.. warning::
Don't rely on validation of the file extension to determine a file's
type. Files can be renamed to have any extension no matter what data
they contain.
``validate_image_file_extension``
---------------------------------
.. data:: validate_image_file_extension
.. versionadded:: 1.11
Uses Pillow to ensure that the ``value`` is `a valid image extension
<https://pillow.readthedocs.org/en/latest/handbook/image-file-formats.html>`_.

View file

@ -192,6 +192,9 @@ Models
<django.db.models.query.QuerySet.update_or_create>` and
:meth:`~django.db.models.query.QuerySet.get_or_create`.
* :class:`~django.db.models.ImageField` now has a default
:data:`~django.core.validators.validate_image_file_extension` validator.
Requests and Responses
~~~~~~~~~~~~~~~~~~~~~~
@ -237,7 +240,10 @@ URLs
Validators
~~~~~~~~~~
* ...
* Added :class:`~django.core.validators.FileExtensionValidator` to validate
file extensions and
:data:`~django.core.validators.validate_image_file_extension` to validate
image files.
.. _backwards-incompatible-1.11: