Python Django简易缩略图不工作
我在一个项目中使用django easy_缩略图,我一步一步地按照说明操作。 但我发现url没有返回 包含imageField的模型为:Python Django简易缩略图不工作,python,django,easy-thumbnails,Python,Django,Easy Thumbnails,我在一个项目中使用django easy_缩略图,我一步一步地按照说明操作。 但我发现url没有返回 包含imageField的模型为: class Project(models.Model): name = models.CharField(max_length=100) description = models.CharField(max_length=2000) startDate = models.DateField(auto_now_add=True) phot
class Project(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=2000)
startDate = models.DateField(auto_now_add=True)
photo = models.ImageField(upload_to="projectimg/", null=True, blank=True)
在设置中,我指定:
THUMBNAIL_ALIASES = {
'': {
'avatar': {'size': (50, 50), 'crop': True},
},
}
我使用模板过滤器:
<div class="image">
<img src="{{ MEDIA_URL }}{{ project.photo|thumbnail_url:'avatar'}}" class="img-responsive" alt="{{ project.name }}">
</div>
然而,过滤器似乎没有返回任何东西。是因为找不到url吗?还是其他原因?谢谢你的时间 这个问题有点老了,但我遇到了同样的问题(使用OSX Mavericks 10.9.2),我会把{{MEDIA_URL}}放进去,然后会出现,但第二部分没有。所以我想我会回答这个问题(这是我在寻找答案时遇到的) 第一件事:用户freylis对问题的评论是正确的。你不需要
{{ MEDIA_URL }}
一点也不
我做的第一件事就是修改我的settings.py:
THUMBNAIL_DEBUG = True
这给了我一些调试信息。现在的信息是误导性的,因为它告诉我第二部分创建的路径和文件不存在……我可以看到它在服务器端确实存在
经过一番挖掘,我了解到可能需要为我正在使用的图像类型安装库(在命令行上使用自制):
完成后,我卸载并重新安装了枕头:
pip uninstall Pillow
pip install Pillow --upgrade
我相信--upgrade将编译新的库供它使用(在本例中为libjpeg),而不是只使用它第一次安装时所编译的库
一旦我这样做了,我就能够刷新我的站点,并且图片开始显示。问题可能是两件事之一,要么是运行wsgi应用程序的用户对生成缩略图的目录没有正确的权限(很可能),要么是Pillow没有正确安装并提供正确的支持 在我的案例中修复权限是检查用户gunicorn在什么下运行,我检查了gunicorn conf文件并创建了user=www data,它是user 33,然后我将目录更改为存储缩略图的目录,上面的一个目录,并使user id 33成为所有者:
chown -R 33:2000 filer_public_thumbnails
现在重新启动应用程序
另一个不太可能的问题是枕头没有正确的图像支持
1) 卸载枕头
sudo pip uninstall Pillow
sudo pip install Pillow
2) 安装所有必需的库(Ubuntu)
(世纪)
并重新安装枕头
sudo pip uninstall Pillow
sudo pip install Pillow
看看你现在是否有正确的支持并重新启动你的应用服务器。你没有忘记
syncdb
或migrate
命令吗?没有。我确实迁移了easy_缩略图,虽然终端显示文档中“无需迁移”,但你不需要用户{MEDIA_URL}前缀。我认为这不是{MEDIA_URL}的问题。问题是“缩略图url”过滤器无法获取url,因为当我签入元素检查器时,{MEDIA\u url}}已正确加载,但{{project.photo{thumbnail\u url:'avatar'}为空.np。如果您使用的是uWSGI,那么同样要设置用户/组配置属性并从那里进行故障排除。runserver在您的id下运行,但我假设如果您将缩略图文件夹的所有者或权限更改为您的id无法写入的内容,则问题可能会被复制。干杯
sudo pip install Pillow