首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django easy_thumbnails的默认图像

Django easy_thumbnails的默认图像
EN

Stack Overflow用户
提问于 2013-11-13 14:51:17
回答 2查看 2.1K关注 0票数 4

我有一个带有ImageField的模型,我使用easy_thumbnails (|thumbnail_url)显示它。

我的问题是,如果ImageField为空,如何显示默认图像?

我希望在模型/视图中使用这个逻辑,在html/模板中使用而不是

例如:

代码语言:javascript
复制
DEFAULT_PICTURE = 'default.jpg'

def get_picture(self):
    if self.picture:
        return self.picture
    else:
        from DEFAULT_PICTURE

get_picture()应该返回哪些与easy_thumbnails兼容的对象?

我试图创建一个新的File对象,比如这里,但是它没有工作。

您能否提供一个返回要用easy_thumbnails显示的现有文件的工作示例?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-14 14:10:17

克里斯(缩略图)回答了这里,也回答了所以

他关于创建一个新ImageFieldFile的建议是好的,但是easy_thumbnails仍然失败了,因为新创建的ImageFieldFile有一个空实例。

所以要么设置instance = self

代码语言:javascript
复制
DEFAULT_PICTURE = 'default.jpg'

def get_picture(self):
    if self.picture:
        return self.picture
    else:
        return ImageFieldFile(instance=self, field=FileField(), name=DEFAULT_PICTURE)

或更改alias.py第116行:

代码语言:javascript
复制
if not hasattr(target, 'instance'):
    return None

应该..。

代码语言:javascript
复制
if not hasattr(target, 'instance') or not target.instance:
    return None
票数 6
EN

Stack Overflow用户

发布于 2013-11-13 15:01:58

这是我以前使用过的代码。它可能会被优化一点(而且可能不应该有硬编码的媒体路径),但它对我的小项目很有效。

代码语言:javascript
复制
def get_picture(self):
    if self.picture:
         return '<img src="%s" />' % self.picture['thumbnail'].url
    return '{img src="/media/img/admin/icon-no.gif" alt="No Image"}' 

这样,您只需要确保在适当的路径上有icon-no.gif

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19956837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档