Есть некий класс, содержащий картинку в атрибуте 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