使用django sorl-thumbnail和django form-utils

时间:2011-07-01 03:27:55

标签: python django django-forms sorl-thumbnail

如何在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'))

但我仍然无法弄明白。

1 个答案:

答案 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中定义的整个表单。