【问题标题】:Use django sorl-thumbnail with django form-utils将 django sorl-thumbnail 与 django form-utils 一起使用
【发布时间】:2011-09-26 11:05:46
【问题描述】:

如何在 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 和 %(图片。默认值为 %(输入)s
%(图像)s

代码如下:

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

但我还是想不通。

【问题讨论】:

    标签: python django django-forms sorl-thumbnail


    【解决方案1】:

    看起来在您的表单类定义中您将ImageField 命名为pic,但随后在您的模板中您尝试使用form.image 引用该字段。

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


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

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

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

    如果这些导入都没有抛出ImportErrors,那么它们就被正确安装了。


    此外,可能包含更多代码,例如您在forms.py 中定义的整个表单。

    【讨论】:

      猜你喜欢
      • 2012-10-02
      • 2012-06-21
      • 2012-11-22
      • 2013-01-30
      • 2012-09-05
      • 2016-05-09
      • 2011-05-13
      • 2021-05-09
      • 2010-12-03
      相关资源
      最近更新 更多