gpt4 book ai didi

python - CharField 文件名到 Django 中的 ImageFields

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:09 24 4
gpt4 key购买 nike

我有一个模型:

class Photo(models.Model):
filename = models.CharField(max_length=240)

以及一个相应的 MySQL 表,其中填充了文件名(从现有表中复制)。

将来我可能想通过管理员将新照片上传到模型。是否可以将当前模型发展为具有 ImageFields 的模型并集成我的遗留数据?

最佳答案

有可能,假设您模型中的当前 filename 字段包含实际文件的完整路径,您可以向模型添加一个新字段 (ImageField) 并使用 South 迁移它,然后编写脚本来更新您的数据。

骨架示例,

from django.core.files import File

# assuming your updated model looks like:
# class Photo(models.Model):
# filename = models.CharField(max_length=240)
# image = models.ImageField(max_length=240)

photos = Photo.objects.all()
for p in photos:
f = open(p.filename)
myimage = File(f)
p.image.save(image_name, myimage) # name, content

然后通过 South 删除旧的 filename 字段。请先查看 Django 的 FileField 以获得更多信息,因为 ImageField 本质上继承了前者的所有属性和方法。 (参见 https://docs.djangoproject.com/en/1.3/ref/models/fields/#django.db.models.FileField)

关于python - CharField 文件名到 Django 中的 ImageFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7068444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com