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

Метод delete

Метод delete применяется к объекту хранилища и удаляет файл по указанному имени. Метод принимает имя файла в качестве аргумента и возвращает True в случае успешного удаления и False если файл не существует. При удалении файла метод автоматически обрабатывает все необходимые операции, включая закрытие файловых дескрипторов.

Синтаксис

storage.delete(name)

Параметры

Метод принимает следующие параметры:

  • name - имя файла в хранилище (строка), может включать путь относительно корня хранилища

Пример

Давайте удалим файл с именем "documents/report.txt" используя стандартное хранилище:

from django.core.files.storage import default_storage # Удаляем файл из хранилища result = default_storage.delete("documents/report.txt") print(f"File deleted: {result}")

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

"File deleted: True"

Пример

Попробуем удалить несуществующий файл и обработать результат:

from django.core.files.storage import default_storage # Попытка удалить несуществующий файл result = default_storage.delete("images/missing.png") if result: print("File was deleted successfully") else: print("File does not exist or could not be deleted")

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

"File does not exist or could not be deleted"

Пример

Удалим несколько файлов в цикле, используя список имен:

from django.core.files.storage import default_storage # Список файлов для удаления files_to_delete = [ "temp/temp1.log", "temp/temp2.log", "temp/temp3.log" ] # Удаляем файлы for file_name in files_to_delete: if default_storage.exists(file_name): deleted = default_storage.delete(file_name) print(f"Deleted {file_name}: {deleted}") else: print(f"File {file_name} does not exist")

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

"Deleted temp/temp1.log: True" "Deleted temp/temp2.log: True" "Deleted temp/temp3.log: True"

Пример

Удалим файл, связанный с моделью, используя поле FileField:

from django.core.files.storage import default_storage from myapp.models import Document # Находим документ и удаляем его файл try: doc = Document.objects.get(id=1) file_name = doc.file.name deleted = default_storage.delete(file_name) if deleted: doc.file.delete(save=True) print(f"File {file_name} deleted from storage") except Document.DoesNotExist: print("Document not found")

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

"File documents/contract_2025.pdf deleted from storage"

Пример

Используем метод delete с пользовательским хранилищем FileSystemStorage и указанием базовой директории:

from django.core.files.storage import FileSystemStorage import os # Создаем хранилище с пользовательской директорией storage = FileSystemStorage( location=os.path.join("media", "user_files"), base_url="/media/user_files/" ) # Удаляем файл из указанной директории file_name = "profile/avatar.jpg" if storage.exists(file_name): result = storage.delete(file_name) print(f"Avatar deleted: {result}") else: print("Avatar file not found")

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

"Avatar deleted: True"

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

  • метод save,
    который сохраняет файл в хранилище
  • метод exists,
    который проверяет существование файла
  • метод open,
    который открывает файл в хранилище
  • метод listdir,
    который возвращает список файлов в директории
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить