Django - Удалить файл после удаления FileField - PullRequest
0 голосов
/ 19 мая 2019

У меня есть проект Django, в котором я использую файловое поле для загрузки файлов.

Что я хочу сделать, это удалить файл поля файла, который связан с объектом, который я пытаюсь удалить.

Я использовал этот документ в качестве примера: https://djangosnippets.org/snippets/10638/

, когда я использую эти функции, я получаю ошибку на сервере: «Ошибка 32 - процесс не может получить доступ к файлу, потому что ониспользуется другим процессом "Я думаю, что процесс, который использует его, является сервером django, потому что я пытался удалить его с помощью обычного сценария python (те же функции) и с помощью пакета, и он работал просто отлично.

Кто-нибудь знаетспособ обойти это?

1 Ответ

1 голос
/ 19 мая 2019

Вы хотите удалить файлы (FileField, ImageField) при удалении всей модели?

Попробуйте вот так.

from django.db import models

class MyModel(models.Model)
    ''' for example this is your model '''
    name = models.CharField(max_length=255)
    image = models.ImageField(upload_to='/test/var/')

# this is your view
mm = MyModel.objects.get(pk=111)
# print(mm.image)
mm.image.close() # add this line
mm.image.delete() # this will delete file and not model
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...