Djnago FileField: Предотвращение сохранения файла в файловой системе при загрузке

У меня есть простое приложение в этом github repo. Там есть готовая база данных.

Существует две модели:

from django.db import models
from django.db.models import FileField


class Task(models.Model):
    name = models.CharField(max_length=20)


class TaskAttachment(models.Model):
    task = models.ForeignKey(Task, on_delete=models.CASCADE)
    file = FileField()
    binaries = models.BinaryField()
    content_type = models.TextField()

    def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
        self.binaries = self.file.file.read()
        self.content_type = self.file.file.content_type
        super().save(force_insert, force_update, using, update_fields)

Примечание: пожалуйста, не спрашивайте, почему я сохраняю файлы в базе данных, а не в файловой системе или s3.

Зарегистрирована модель TaskAttachment в admin:

from django.contrib import admin

from tasks.models import TaskAttachment


class TaskAttachmentAdmin(admin.ModelAdmin):
    exclude = ['content_type']


admin.site.register(TaskAttachment, TaskAttachmentAdmin)

Проблемы, с которыми я столкнулся, заключаются в том, что загруженные файлы сохраняются в файловой системе:

enter image description here

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

Как я могу предотвратить сохранение файлов в файловую систему при загрузке файлов и получить содержимое файла из поля binaries базы данных при получении экземпляра модели TaskAttachment?

Вернуться на верх