我有一个带有ImageField的模型,我使用easy_thumbnails (|thumbnail_url)显示它。
我的问题是,如果ImageField为空,如何显示默认图像?
我希望在模型/视图中使用这个逻辑,在html/模板中使用而不是。
例如:
DEFAULT_PICTURE = 'default.jpg'
def get_picture(self):
if self.picture:
return self.picture
else:
from DEFAULT_PICTUREget_picture()应该返回哪些与easy_thumbnails兼容的对象?
我试图创建一个新的File对象,比如这里,但是它没有工作。
您能否提供一个返回要用easy_thumbnails显示的现有文件的工作示例?
发布于 2013-11-14 14:10:17
他关于创建一个新ImageFieldFile的建议是好的,但是easy_thumbnails仍然失败了,因为新创建的ImageFieldFile有一个空实例。
所以要么设置instance = self
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行:
if not hasattr(target, 'instance'):
return None应该..。
if not hasattr(target, 'instance') or not target.instance:
return None发布于 2013-11-13 15:01:58
这是我以前使用过的代码。它可能会被优化一点(而且可能不应该有硬编码的媒体路径),但它对我的小项目很有效。
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。
https://stackoverflow.com/questions/19956837
复制相似问题