Django 中文件对象的数据迁移——在没有文件的情况下创建文件数据

Data migrations of files object in Django - create a file data without having the file

我在迁移包含 FieldFile 对象的表时遇到问题。这里的问题是我还没有文件。我用一种特殊的方法来创建ObjectFile

def create_object_file(file):
    return = ObjectFile.objects.create(
            name=name,
            content_type=file.content_type,
            extension=extension,
            uploaded_by=object_user,
            md5sum=file.md5sum,
            file=''
        )

文件是一个 FieldFile。由于我还没有文件,所以我需要在没有文件的情况下注册它。

我试图从 django.db.models 中导入一个 FieldFile,想实例化它以便将其归因于 file。但它现在错过了 chunks

我认为一种解决方案是使用原始 sql 来填充新数据库。

所以,这个解决方案并不是真正解决问题:没有文件如何迁移数据文件?

我设法得到了一些我必须处理的文件,我做了我必须做的,这很简单:

from django.core.files import File


def create_source_file(file, object_file):
    media = os.path.join(SOURCE_FILES, file.path)
    if not os.path.exists(media):
        return

    of = ObjectFile(
        name=name,
        content_type=file.file_type,
        extension=extension.lower(),
        md5sum=file.md5sum,
    )
    with open(media, 'rb') as m:
        of.file.save(file.name.lower(), File(m))
        of.save()