我有一个有个人资料照片的用户。图片将被转换为两种尺寸:一种将显示为他的个人资料(约200px。宽),一个较小的缩略图将显示在搜索结果中(约64像素宽)。
为此构建数据库和文件夹结构的最佳方法是什么?
我对db结构的两个想法是:
# 1)
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
...
avatar = models.ImageField(upload_to='images/%Y/%m/%d', blank=True,)
avatar_thumbnail = models.ImageField(upload_to='images/%Y/%m/%d', blank=True,)
# 2)
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
...
class Avatar(models.Model):
avatar = models.ImageField(upload_to='images/%Y/%m/%d')
user = models.ForeignKey(UserProfile)
哪一种更好的方法来解决这个问题?什么是构建我的图像文件夹以轻松分离和引用两个图像大小的好方法?谢谢。
答案 0 :(得分:2)
您可以使用Sorl缩略图,上传一张图片并使用Sorl的模板标签动态创建较小的版本。这也可以使您不必创建另一个类。我在这个库中取得了很大的成功,希望它可以帮助你。
答案 1 :(得分:1)
我认为第二种选择实际上会更好。可能会分成一个单独的应用程序。我发现保持功能分区要好得多。在一个应用程序中保存与您的头像相关的所有内容,并保留缩略图代码等部分内容,以及创建用于显示头像的模板标记。
可能已有一个应用程序......