Возвращает заголовок записей БД типа "FileField" в django - PullRequest
1 голос
/ 09 июля 2020

Я использую Django admin для ежедневной загрузки файлов в БД моих сайтов. Как мне отслеживать имена файлов, которые я загрузил в базу данных? потому что в Django admin они просто отображаются как objects1 object2 et c. Я хочу вернуть свой the_file заголовок загружаемого файла. Я пытаюсь отобразить первые 50 символов имени загруженных мною файлов. Однако у меня это не работает. Я думаю, что у меня проблема, потому что это тип FileField

class UploadedFile(models.Model):
    the_file = models.FileField()

    def __str__(self):
        return self.the_file[:50]

1 Ответ

1 голос
/ 09 июля 2020

Объект a FileField [Django -doc] обертывает FieldFile [Django -doc] (обратите внимание, что два слова меняются местами). Вы можете получить имя файла с помощью атрибута .name [Django -doc] :

Имя файла, включая относительный путь из root из Storage связанного FileField.

Итак, мы можем использовать это в методе __str__:

class UploadedFile(models.Model):
    the_file = models.FileField()

    def __str__(self):
        return self.the_file<b>.name</b>[:50]
...