如何让django缩略图显示图像?

如何让django缩略图显示图像?,django,Django,现在,我从中学到了django,我遇到了一个问题!我想在“缩略图项目”上显示缩略图图像,但它只是显示html代码: <a href="/photos/1414.jpg><img border="0" alt="" src="/photos/1414.jpg" height="40"/></a> 我已检查我的路径已在我的项目“myweb/photos/”上创建照片 如何让页面理解其html代码。请按照上的教程操作。.链接上的代码不是正确的方法使用django,

现在,我从中学到了django,我遇到了一个问题!我想在“缩略图项目”上显示缩略图图像,但它只是显示html代码:

<a href="/photos/1414.jpg><img border="0" alt="" src="/photos/1414.jpg" height="40"/></a>
我已检查我的路径已在我的项目“myweb/photos/”上创建照片
如何让页面理解其html代码。

请按照上的教程操作。.链接上的代码不是正确的方法使用django,关闭它并阅读官方文档

使用
url
属性,而不是图像上的
名称
属性:

def thumbnail(self):
    return """<a href="/%s><img border="0" alt="" src="/%s" height="40"/> """ % ((self.image.url,self.image.url))

首先,我不知道为什么要在这个用例中使用
manytomy
字段。你需要使用一个新的

定义为
ImageField
的字段将有一个
url
属性,用于引用文件的相对路径

其次,不要在模型类中混合使用HTML和Python。Django有专门用于此用例的模板:

from django.template.loader import render_to_string

class Image(models.Model):
    image = models.ImageField(upload_to='photos')
    alt = models.CharField(max_length=100)

    def thumbnail(self):
        return render_to_string('thumbnail.html', {'image': self})


# thumbnail.html
<img src="{{ image.image.url }}" alt="{{ image.alt }}" ... />
从django.template.loader导入呈现到字符串
类映像(models.Model):
image=models.ImageField(上传到='photos')
alt=models.CharField(最大长度=100)
def缩略图(自身):
将render_返回到_字符串('thumbnail.html',{'image':self})
#缩略图.html
请记住,人为地将全尺寸图像缩放到40x40像素以生成缩略图是非常低效的,如果有很多这样的图像,则绝对会影响性能


正如其他人所提到的,您可以使用优秀的库,如或,以您需要的任何维度生成这些图像的适当、缩小、优化版本。

我将“名称”替换为“url”,但仍然没有效果!所以我尝试了你的方法2,但我不知道如何调用你的template.html,我应该通过render_to_response('template.html',{})来实现它,但它告诉我错误是(找不到模板缩略图)。提前谢谢你!哦,实际上很多都不是我想要的输入,我只是有一些错误把它放在这里!我已经尝试了你的方法,然后它只是对'alt'有效显示一些像日期时间(默认值可能)!但我试着写一个简单的例子!我不使用模板,反正我不能上传图像到堆栈溢出,所以请查看我的Facebook/photohttps://www.facebook.com/photo.php?fbid=122158394809921&set=a.122155181476909.1073741827.100010472830526&type=3&theaterThen 你的代码还有其他一些错误,你还没有发布。自从Django创建以来,
ImageField
上的
url
属性就一直存在。耶!我没有设置我的媒体URL,因此无法在模板上加载图像,我在将图像渲染到字符串之前打印self.image.URL。我发现那里不可能有图像!谢谢你的帮助!
def thumbnail(self):
    return """<a href="/%s><img border="0" alt="" src="/%s" height="40"/> """ % ((self.image.url,self.image.url))
{% load thumbnail %}
{% thumbnail item.image "100x100" crop="center" as im %}
    <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
from django.template.loader import render_to_string

class Image(models.Model):
    image = models.ImageField(upload_to='photos')
    alt = models.CharField(max_length=100)

    def thumbnail(self):
        return render_to_string('thumbnail.html', {'image': self})


# thumbnail.html
<img src="{{ image.image.url }}" alt="{{ image.alt }}" ... />