我通过创建自定义表单(like this)为以内嵌形式显示的图片实现了缩略图。
然而,在一个案例中(我注意到)到目前为止,我在尝试编辑项目时遇到了ZeroDivisionError,这显然是由TiffImagePlugin中的this line引起的,由get_thumbnail调用。
这是错误追溯
这是我的代码(注意我也使用了admin-sortable,但我不认为这是相关的):
from django.contrib.admin.widgets import AdminFileWidget
from django.utils.safestring import mark_safe
from django.forms import ModelForm
from sorl.thumbnail import get_thumbnail
from models import Image
class AdminImageWidget(AdminFileWidget):
def render(self, name, value, attrs=None):
output = []
if value and getattr(value, "url", None):
t = get_thumbnail(value,'80x80')
output.append('<img src="{}">'.format(t.url))
output.append(super(AdminFileWidget, self).render(name, value, attrs))
return mark_safe(u''.join(output))
class ImageForm(ModelForm):
class Meta:
fields = '__all__'
model = Image
widgets = {
'img': AdminImageWidget,
}
class ImageInline(SortableStackedInline):
model = Image
extra = 3
form = ImageForm
class ProjectAdmin(NonSortableParentAdmin):
list_display = ('name', 'description')
inlines = [ImageInline]
list_filter = ('type',)
search_fields = ('name', 'description')
请注意,这不会一直发生,只有在尝试编辑特定的项目时才会发生(我假设它可能会与其他人一起发生,但到目前为止还不能找到更多例子。)
有什么想法吗?先谢谢!
答案 0 :(得分:1)
得到同样的错误,更新Pillow,它会有所帮助。
handleClick(value) {
this.props.pushPath('/Options/' + value);
}
render() {
return (
<div className="container">
<div>Search bar here</div>
<div className={styles.tile_container}>
{this.state.options.map(option =>
<div name= {option.name} key={option.key} onClick={this.handleClick.bind(this, option.name)}>{option.name}</div>
)}
</div>
</div>
);
}