Используйте django sorl-thumbnail с django form-utils - PullRequest
2 голосов
/ 01 июля 2011

Как мне реализовать миниатюру sorl в утилитах формы django?

Таким образом, документация утилиты формы говорит об этом в ImageWidget:

(Миниатюры доступны, только если установлена ​​sorl-thumbnailв противном случае отображается полноразмерное изображение).

Однако я не могу это реализовать.Я попытался использовать ImageField от sorl в моделях, он ломает ImageWidget утилиты форм, и я не могу разобраться, используя его в шаблоне, когда все, что у меня есть в шаблоне, это:

<li class="field_upload">
    {{ form.image.errors }}
    <label for="id_image" class="top">{{  form.image.label }}</label>
    {{ form.image }}
</li>

формаУ utils есть опция, которая говорит:

ImageWidget принимает аргумент ключевого слова, шаблон.Это строка, определяющая, как эскиз изображения и виджет ввода файла отображаются относительно друг друга.Строка шаблона должна содержать переменные маркеры интерполяции% (input) s и% (image) s.Значением по умолчанию является% (входной) с% (image) s

, который в коде выглядит следующим образом:

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

, но я все еще не могу понять это.

1 Ответ

1 голос
/ 08 июля 2011

Похоже, что в определении класса формы вы называете ImageField как pic, но затем в своем шаблоне вы пытаетесь обратиться к полю с помощью form.image.

Попробуйте просто использоватьстандартный рендерер форм Django, добавив в шаблон {{form}} - если это сработает, вы знаете, что это просто проблема с вашими шаблонами.


Библиотека миниатюр SORL должна быть доступна только для доступав пути Python вашего проекта Django (вместе с библиотекой изображений Python).

Чтобы проверить, доступны ли эти библиотеки для вашего проекта Django, перейдите в корневой каталог вашего проекта и запустите ...

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

Если ни один из этих импортов не генерирует ImportError s, тогда они установлены правильно.


Также, возможно, добавьте еще немного кода, например всю форму, как вы ее определили в forms.py.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...