Найти - Пользователи
Полная версия: BB Image
Начало » Zope/Plone/Bluebream » BB Image
1
LightOfMooN
Есть некий класс, содержащий картинку в атрибуте image

class ISection(IContainer):
image = Bytes(
title=u“”,
default=None,
required=False)

Для отображения картинки в шаблоне используется следующая схема:

Директива zcml регистрирует вид для отображения непосредственно картинки:

<browser:page
for=“intershop.shopcatalog.interfaces.ISection”
name=“getImage”
permission=“zope.Public”
class=“.section.getImage”
/>

Класс вида:

class getImage():
def __call__(self):
return self.context.image

В шаблоне в теге img в качестве атрибута src устанавливается ссылка на вид, возвращающий картинку:

<img tal:attributes=“src string:${context/@@absolute_url}/@@getImage”>

———————
Проблема: если имеется несколько картинок у одного объекта, то для получения каждой приходится писать новый вид.

Вопрос: есть другое решение отображения картинки?
К примеру, можно ли как-то в качестве src передавать путь к методу, чтобы браузер по нему получал картинку? Например, в таком виде:
<img tal:attributes=“src string:${context/@@absolute_url}/@@SomeView/getImage1”>

Про наследование полей от объекта Image просьба не писать.

P.S. Подозреваю, что можно как-то передавать параметры классу вида для реализации ветвления примерно такого вида:

class getImage():
def __call__(self, imagefield):
return self.context
regall
LightOfMooN
Проблема: если имеется несколько картинок у одного объекта, то для получения каждой приходится писать новый вид.
Если много картинок - имеет смысл сделать из объекта контейнер, в который все эти картинки добавлять.
LightOfMooN
не много
к примеру, поле Image - полная картинка, и Image_small - уменьшенная автосгенерированная
regall
Можно организовать траверсинг по атрибуту
LightOfMooN
а параметр никак не передать?
regall
LightOfMooN
а параметр никак не передать?
По атрибуту получаете объект, к объекту применяете вид, а там уж передаете любые параметры Get запроса, какие заблагорассудится. Можете пойти дальше и делать еще траверсинг по виду.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB