在模型中按字段保存缩略图

时间:2012-10-22 08:09:12

标签: django django-models

我想根据请求为一个模型类中的某些字段保存缩略图。对我来说痛苦的是,我如何设法让缩略图类尽可能简单?

假设我有这个主要类

class Staff(models.Model):
    name = models.CharField(max_length=100)
    img1 = models.ImageField(upload_to=upload_path)
    img2 = models.ImageField(upload_to=upload_path)
    img3 = models.ImageField(upload_to=upload_path)
    ...

现在我想在另一个模型类中为每个img-field保存一个缩略图。因此,如果有拇指,我可以查询Thumbnail img1 ......这样的事情(不是工作代码)

class Thumbnail(models.Model):
    staff = models.ForeignKey(Staff)
    field = models.FooBar('Staff._meta.fields...')
    thumb = models.ImageField(upload_to=upload_path2)

关于这个Thumbnail - 类的看法有什么建议或想法吗?

1 个答案:

答案 0 :(得分:0)

我建议对模型进行更多更改,以便更好地存储图像和缩略图。 您可以创建包含原始图像,缩略图和任何其他属性的ImageInfo模型。它将包含Staff的foriegnkey,以便您可以为Staff

创建多个图像
class Staff(models.Model):
    name = models.CharField(max_length=100)


class ImageInfo(models.Model):
    staff = models.ForeignKey(Staff)
    img = models.ImageField(upload_to=upload_path)
    thumb = models.ImageField(upload_to=upload_path2)

现在您可以找到缩略图设置为

的图像
staff_obj.imageinfo_set.filter(thumb__isnull=False)