Skip to main content
Version: 1.X.X

Django File Validator

Django File Validator falls into the Validators category and another feature provided for file validation in Django

Parameters

info
ParametersTypeDescription
librarieslist optionalThe value of libraries should be a list of libraries with which you want to perform the validation operation.
Example : libraries=["filetype","python_magic", "filetype"]
defaults If you do not select any library, it will perform the validation operation with django by default, Supported libraries for validation operations: python_magic, pure_magic, filetype, mimetypes, all, default
If you use all, validation operations will be performed with all libraries and if you use default, validation operations will only be done with Django
acceptable_mimeslistThe mimes you want the file to be checked based on.
example: acceptable_mimes=['audio/mpeg', 'video/mp4']
acceptable_typeslistThe types you want the file to be checked based on.
example: acceptable_types=['audio', 'video']
max_upload_file_sizeint optionalIf you want the file size to be checked, the file size must be in bytes,
example: max_upload_file_size=1048576 (1MB)
defaults to None

Returns

info
Returns:
If the mime list is empty, raised a value error
If the library you entered is not supported, raised a value error,
Supported library: filetype, mimetypes, pure_magic, python_magic, all, default
if file not valid raises ValidationError
At least one of the parameters of acceptable_mimes or acceptable_types must be filled else EmptyParametersException error occurs
If the type you enter in acceptable_types is not supported by the file-validator library, it will cause TypeNotSupportedException error, supported types are audio, video, image, font and archive

Size conversion table

note

To choose the size you want the files to be validated based on, you can take help from the table below or enter your desired size in bytes:

SizeBytes
1 MB1048576 B - 10242 B - 220 B
2.5 MB2621440 B
5 MB5242880 B
10 MB10485760 B
20 MB20971520 B
50 MB52428800 B
100 MB104857600 B
250 MB262144000 B
500 MB524288000 B
1 GB1073741824 B
2 GB2147483648 B

How Use DjangoFileValidator?

To use FileValidator you must act as follows:

1.First, import the DjangoFileValidator to your Django model as follows:

from django.db import models
from file_validator.models import DjangoFileValidator
  1. In the next step we have to give it to our model as follows:
from django.db import models
from file_validator.models import DjangoFileValidator

class TestFileModel(models.Model):
test_file = models.FileField(
validators=[
DjangoFileValidator(
libraries=["python_magic", "filetype"], # => validation operations will be performed with python-magic and filetype libraries
acceptable_mimes=['audio/mpeg', 'video/mp4', 'image/png'], # => The mimes you want the file to be checked based on.
acceptable_types=['audio', 'video', 'image'], # => The types you want the file to be checked based on.
max_upload_file_size=10485760 # => 10 MB
)
]
)
  1. Finally run with the following commands:
python manage.py makemigrations
python manage.py migrate

Done ✅

From now on, get the files safely from users.