簡體   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