繁体   English   中英

CharField 文件名到 Django 中的 ImageFields

[英]CharField filenames into ImageFields in Django

我有一个 model:

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

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

将来我可能想通过管理员将新照片上传到 model。 是否可以将当前的 model 演变成具有 ImageFields 的东西并集成我的旧数据?

有可能,假设 model 中的当前filename段包含实际文件的完整路径,您可以向 model 添加一个新字段 (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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM