如何在django form utils中实现sorl缩略图?
因此,表单utils文档说明了它的ImageWidget:
(缩略图仅在以下情况下可用 已安装sorl-thumbnail;除此以外 显示全尺寸图像。)
但是,我似乎无法实现它。我尝试在模型中使用sorl的ImageField,它打破了form-utils的ImageWidget,当模板中的所有内容都是这样的时候,我无法在模板中使用它:
<li class="field_upload">
{{ form.image.errors }}
<label for="id_image" class="top">{{ form.image.label }}</label>
{{ form.image }}
</li>
form utils有一个选项说:
ImageWidget接受关键字 论证,模板。这是一个字符串 定义图像缩略图和 呈现文件输入窗口小部件 相对于彼此。模板 string应该包含变量 插值标记%(输入)s和 %(图片。默认值为 %(输入)■
%(像)类
在代码中看起来像这样:
pic = forms.ImageField(
widget=ImageWidget(template='%(image)s<br />%(input)s'))
但我仍然无法弄明白。
答案 0 :(得分:1)
在您的表单类定义中,您将ImageField
命名为pic
,但随后在您的模板中,您尝试使用form.image
引用该字段。
暂时尝试使用标准的Django表单渲染器,方法是将{{form}}
放在模板中 - 如果有效,那么您就知道这只是模板的问题。
<小时/> 只需要在Django项目的Python Path(以及Python Image Library)上访问SORL缩略图库。
要检查这些库是否可用于您的Django项目,请转到项目的根目录并运行...
$ python manage.py shell
>> import sorl.thumbnail
>> import PIL
如果这些导入都没有抛出ImportError
,那么它们就已正确安装。
<小时/> 此外,可能还包含一些代码,例如您在
forms.py
中定义的整个表单。