Djangothumbnails app问题

时间:2011-06-08 11:02:26

标签: django django-models

我使用this plugin to生成缩略图。但是我无法让它发挥作用。模型运行良好,因为图像可以从管理界面上传,甚至可以生成缩略图。我上传了一张名为“myphoto.jpg”的图片。我的观点是这个。

def mainpage(request,slug):
    page = get_object_or_404(MainPage, slug=slug)
    image = get_object_or_404(Image)
    return direct_to_template(request, 'flatpage.html',
        extra_context={
            'page':page,
            'image':image,
        })

我已将模型中的类定义为“Image”。我在模板中有这个: <img src="{% image.photo.myphoto_125x125 %}">但模板显示错误。

这是我的模特:

class Image(models.Model):
    title = models.CharField(max_length=100)
    photo = ImageWithThumbsField(upload_to='images/', sizes=((125,125),(200,200)))
    # second_photo = ImageWithThumbsField(upload_to='site_media/images')

    def __unicode__(self):
        return self.title

第二个字段“second_photo”我已经注释掉了,因为它创建了主图像的副本。即使我正在寻找一种方法来为第一个字段本身创建实际未图像化的图像。

2 个答案:

答案 0 :(得分:0)

我没有尝试过这个应用程序,但我使用PIL创建上传图像的缩略图版本,并使用模型中的def来检索缩略图的路径以供显示。这可能比你想要的更多的手动方法,但它对我来说没问题。您可以覆盖模型上的save方法(具有FileField)或将post_save signal发送到def以创建缩略图。

但是很想知道你使用的这个应用程序是否比这种手动方法增加了一些有用的功能。

答案 1 :(得分:0)

不知怎的,我得到了它的工作。我没有创建单独的类,而是在blog class中使用了这一行photo = ImageWithThumbsField(blank=True, upload_to='images/', sizes=((125,125),(200,200)))。我在{{% post.photo.url_125x124 %}模板中使用了index.html行。