django - 使用缩略图低级API时的ZeroDivisionError

时间:2015-10-03 14:59:43

标签: django sorl-thumbnail

我通过创建自定义表单(like this)为以内嵌形式显示的图片实现了缩略图。

然而,在一个案例中(我注意到)到目前为止,我在尝试编辑项目时遇到了ZeroDivisionError,这显然是由TiffImagePlugin中的this line引起的,由get_thumbnail调用。

这是错误追溯

enter image description here enter image description here

这是我的代码(注意我也使用了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')

请注意,这不会一直发生,只有在尝试编辑特定的项目时才会发生(我假设它可能会与其他人一起发生,但到目前为止还不能找到更多例子。)

有什么想法吗?先谢谢!

1 个答案:

答案 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>
    );
  }