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()
我在迁移包含 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()