Django Filebrowser无法创建具有自动宽度和约束高度的版本?

Django Filebrowser无法创建具有自动宽度和约束高度的版本?,django,django-filebrowser,Django,Django Filebrowser,我一直在使用Django Filebrowser并设置我的版本,这表明您指定的图像版本如下: VERSIONS = getattr(settings, "FILEBROWSER_VERSIONS", { 'thumbnail': {'verbose_name': 'Thumbnail (1 col)', 'width': 60, 'height': 60, 'opts': 'crop'}, 'small': {'verbose_name': 'Small (2 col)', 'w

我一直在使用Django Filebrowser并设置我的版本,这表明您指定的图像版本如下:

VERSIONS = getattr(settings, "FILEBROWSER_VERSIONS", {
    'thumbnail': {'verbose_name': 'Thumbnail (1 col)', 'width': 60, 'height': 60, 'opts': 'crop'},
    'small': {'verbose_name': 'Small (2 col)', 'width': 140, 'height': '', 'opts': ''},
})
…请注意具有未指定高度的“小”版本大小,它成功生成具有受约束宽度和自动高度的图像版本。这对我来说是成功的,但反过来不行(受约束的高度,但自动宽度):


这里有我没有的技巧,或者库没有这个功能?

我刚刚遇到了同样的问题并解决了它:

当试图生成具有固定高度和自动宽度的版本时,
utils.py
中的
scale\u和\u crop
函数中有一个错误(另一种方法就像一个符咒)。将创建具有原始大小的版本图像

版本定义示例:

FILEBROWSER_VERSIONS = { 
  'medium': {'verbose_name': 'Medium (4col )', 'width': '', 'height': 250, 'opts': ''},
}
其原因是,width变量是一个空字符串,与float进行比较,因此if语句返回False,图像将不会调整大小

解决此问题的一种方法是将宽度字符串转换为浮点数,以便在
utils.py
中进行比较:

66c65
<     if 'upscale' not in opts and x < width:
---
>     if 'upscale' not in opts and x < float(width or 0):
66c65
<如果选项中没有“高标度”且x<宽度:
---
>如果选项中没有“高标度”且x<浮动(宽度或0):
66c65
<     if 'upscale' not in opts and x < width:
---
>     if 'upscale' not in opts and x < float(width or 0):