Django formatter la taille d'un fichier dans un template

Published: 02 février 2018

DMCA.com Protection Status

Avec django pour formatter la taille d'un fichier dans un template (ie. '13 KB', '4.1 MB', etc), il existe une fonction "built-in" nommée filesizeformat:

{{ value|filesizeformat }}

ou value est la taille en Byte du fichier.

Remarque 1: avec python pour obtenir la taille d'un fichier on peut fair comme ceci

import os
os.path.getsize(''my_file.txt')

Remarque 2: on peut aussi obtenir directement la taille d'un fichier téléchargé avec django:

model

class File(models.Model):
    docfile = models.FileField()

template

<form action="/file_upload/" method="post" enctype="multipart/form-data">
{% csrf_token %}

<input type="file" name="docfile" id="id_docfile" />

<input type="submit" value="Download">

</form>

view

form = File_Form(request.POST, request.FILES)   
if form.is_valid():
    size = request.FILES['docfile'].size

Références