Как я могу реализовать поле File_name, которое исключает мой путь к файлу и содержит только имя файла [Django models] - PullRequest
0 голосов
/ 24 февраля 2020

Я разрабатываю приложение в Django. В моем шаблоне у меня есть файловая форма, которая позволяет пользователям хранить файлы в модели, они хранятся в моей директории media_root / uploaded_files /:

class my_model (models.Model):

    file_obj = models.FileField(upload_to='uploaded_files/', blank=False, null=False)

    def __str__(self):    
        return  "%s"  %  (self.file_obj)  

Но в моем разделе администратора, получая доступ к модели my_model, я получаю файл имена типа:

• uploaded_ files / file_1
• uploaded_ files / file_2
• uploaded_ file / file_3

Пока я хочу:

• file_1
• file_2
• file_3

Как мне реализовать поле File_name, которое исключает «uploaded_ files» и содержит только имя файла?

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Как объяснено здесь , свойство name возвращает путь к файлу относительно вашего хранилища root.

Если вы хотите получить только имя файла, используйте os.path.basename() для извлечения имени.

0 голосов
/ 28 февраля 2020

решено:

По моему admin.py:

class my_modelAdmin(admin.ModelAdmin):

    def file_name(self):
            import os
            return os.path.basename(self.file_obj.name)


    list_display = [file_name]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...