Фильтр по размеру файла в Django (FileField) - PullRequest
0 голосов
/ 23 октября 2018

У меня есть модель:

class MyModel(models.Model):
    file = models.FileField(verbose_name='File', upload_to="files/")

Я могу получить размер файла в байтах:

size = my_model_instance.file.size

Как отфильтровать по размеру файла в Django?Примерно так:

MyModel.object.filter(file.size__lt=128)

1 Ответ

0 голосов
/ 23 октября 2018

Вы не можете.model_instance.file.size фактически открывает связанный файл и выбирает размер с диска.Единственное, что сохраняется в базе данных - это путь к файлу.

Если вы хотите иметь возможность фильтрации по размеру файла, вам необходимо сохранить размер в базе данных как дополнительное поле вашей модели.Вы можете заполнить это поле автоматически при сохранении модели.

...