2

如何在 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 接受关键字参数模板。这是一个字符串,它定义了图像缩略图和文件输入小部件如何相对于彼此呈现。模板字符串应包含可变插值标记 %(input)s 和 %(image)s。默认值为 %(input)s
%(image)s

在代码中如下所示:

pic = forms.ImageField(
    widget=ImageWidget(template='%(image)s<br />%(input)s'))

但我仍然无法弄清楚。

4

1 回答 1

1

看起来在您的表单类定义中您将其命名为ImageFieldas pic,但随后在您的模板中您尝试使用form.image.

现在尝试通过放入{{form}}您的模板来使用标准的 Django 表单渲染器——如果这有效,那么您知道这只是您的模板的问题。


SORL 缩略图库应该只需要在您的 Django 项目的 Python 路径(以及 Python 图像库)上可访问。

要检查这些库是否可用于您的 Django 项目,请转到项目的根目录并运行...

$ python manage.py shell
>> import sorl.thumbnail
>> import PIL

如果这些导入都没有抛出ImportErrors 则它们已正确安装。


此外,可能包含更多代码,例如您在forms.py.

于 2011-07-07T22:40:37.987 回答