在我的模型中是否拥有多个models.ImageField

时间:2015-11-04 12:19:29

标签: django

我可以成功上传图片。

现在我要做以下事情: 开发Celery的任务,将上传的图像转换为3个不同的尺寸(例如,300x300,120x120和48x48)。

我想知道什么是最好的方法:

要将我的Image类更改为只包含4个models.ImageField字段(对于原始版本和3个新版本)的对象,或者只保留一个models.ImageField并在数据库上创建额外的对象。

我想知道内存的影响:

如果我选择第一个选项(添加额外的ImageField字段),当我从数据库中检索对象时,将立即读取所有字段。 这不是问题(数据库中的字段只包含带有图像路径的字符串)。

关键是:django会在从数据库检索数据之后立即创建4个图像对象实例,还是在我访问相应的ImageField时创建它?

感谢。

1 个答案:

答案 0 :(得分:1)

我会使用一个server { listen <port>; ... proxy_set_header Host $host:<port>; ... } 并使用ImageField生成缩略图。

您可以使用easy_thumbnails预定义缩略图。

然后按照芹菜指南here