РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
630 of 818 menu

Атрибут name

Атрибут name класса File в Django предназначен для получения имени файла в виде строки. Он возвращает относительный путь к файлу в хранилище (storage), включая все вложенные директории. Атрибут доступен для любого объекта File, включая загруженные файлы, файлы в хранилище и файлы, созданные вручную. Значение атрибута представляет собой строку, которую можно использовать для идентификации файла, операций с хранилищем или вывода имени в интерфейсе.

Важно понимать, что name возвращает именно относительный путь относительно корня хранилища, а не полный путь в файловой системе. Полный путь можно получить с помощью метода path, если хранилище является файловой системой.

Синтаксис

file_instance.name

Атрибут доступен только для чтения и возвращает строковое значение. Он не принимает никаких аргументов.

Пример . С загруженным файлом

Рассмотрим типичный пример получения имени загруженного файла в обработчике формы:

from django.core.files.uploadedfile import UploadedFile # Имитация загруженного файла uploaded_file = UploadedFile(file=b"content", name="document.pdf") # Получение имени file_name = uploaded_file.name print(file_name)

Результат выполнения кода:

"document.pdf"

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

Пример . С файлом из модели

Рассмотрим использование атрибута для модели с полем FileField:

from django.db import models class Document(models.Model): title = models.CharField(max_length=100) file = models.FileField(upload_to="documents/") def __str__(self): return self.title
from myapp.models import Document # Получение объекта и его файла doc = Document.objects.get(id=1) file_name = doc.file.name # Вывод имени print(file_name)

Результат выполнения кода:

"documents/report_2026.pdf"

Обратите внимание, что name возвращает путь относительно корня хранилища, включая директорию, указанную в upload_to.

Пример . С ручным созданием объекта File

Атрибут также работает при ручном создании объекта File:

from django.core.files import File from django.core.files.base import ContentFile # Создание файла с содержимым content_file = ContentFile(b"some content", name="notes.txt") # Проверка имени print(content_file.name) # Использование с открытым файлом with open("/path/to/image.jpg", "rb") as f: file_obj = File(f, name="image.jpg") print(file_obj.name)

Результат выполнения кода:

"notes.txt" "image.jpg"

Во втором случае мы явно указали имя файла при создании объекта File.

Смотрите также

  • атрибут size,
    который возвращает размер файла в байтах
  • класс UploadedFile,
    который представляет загруженный файл в Django
  • класс FileSystemStorage,
    который реализует хранилище в файловой системе
  • метод size,
    который возвращает размер файла в хранилище
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить