Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django简易缩略图不工作_Python_Django_Easy Thumbnails - Fatal编程技术网

Python Django简易缩略图不工作

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

我在一个项目中使用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)
   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