Команда Джанго удалить ()

Я создаю веб-приложение в Django. Там у меня есть модель DocFile с FileField upload.

class DocFile(models.Model):
    name = models.CharField('Bezeichnung', max_length=100)
    md5sum = models.CharField(max_length=32)
    upload = models.FileField('Datei', upload_to=media_file_name, storage=MediaFileSystemStorage())

В следующем представлении я пытаюсь удалить запись базы данных (не файл в моем медиа-каталоге) DocFile, где pk=pd.

def delete_doc(request, pd, pk):
    doc = get_object_or_404(DocFile, pk=pd)
    doc.delete()
    return redirect('list_docfile', pk=pk)

Но, к сожалению, команда delete() удаляет как запись базы данных, так и файл в каталоге мультимедиа. Я попытался найти решение, но все, что я получил, это: Django удалить FileField

Если Django удалил функцию, которая delete() удаляет файл FileField, почему команда по-прежнему удаляет оба файла в моем приложении Django.


person ProjectBWS    schedule 07.03.2018    source источник
comment
Какую версию Django вы используете?   -  person RemcoGerlich    schedule 07.03.2018
comment
Хорошо, что старый Django автоматически удалял обе новые версии, а не   -  person Kimmo Hintikka    schedule 07.03.2018
comment
Я использую Django версии 2.0.1.   -  person ProjectBWS    schedule 07.03.2018
comment
Итак, это странно. Django 2 НЕ удаляет файл на диске при удалении соответствующей записи БД. Вы уверены, что ваш проект не использует сторонний модуль, который удаляет этот файл. Что-то вроде django-cleanup?   -  person Antwane    schedule 07.03.2018
comment
Проблема решена. Большое спасибо! Я добавил django-cleanup в свой файл settings.py в файле install_apps. Я добавил его по пути, но он не выполнил мои запросы, поэтому я полностью забыл об этом модуле.   -  person ProjectBWS    schedule 07.03.2018