Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 18, 2010 12:44:34

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB Image

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



Отредактировано (Сен. 18, 2010 12:50:01)

Офлайн

#2 Сен. 18, 2010 13:20:40

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

BB Image

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



Офлайн

#3 Сен. 18, 2010 13:57:36

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB Image

не много
к примеру, поле Image - полная картинка, и Image_small - уменьшенная автосгенерированная



Офлайн

#4 Сен. 18, 2010 14:54:01

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

BB Image

Можно организовать траверсинг по атрибуту



Офлайн

#5 Сен. 18, 2010 16:32:52

LightOfMooN
От:
Зарегистрирован: 2010-09-11
Сообщения: 127
Репутация: +  0  -
Профиль   Отправить e-mail  

BB Image

а параметр никак не передать?



Офлайн

#6 Сен. 18, 2010 16:50:04

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

BB Image

LightOfMooN
а параметр никак не передать?
По атрибуту получаете объект, к объекту применяете вид, а там уж передаете любые параметры Get запроса, какие заблагорассудится. Можете пойти дальше и делать еще траверсинг по виду.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version