У меня есть такая форма z3c, которая не является типом содержимого ловкости:
from zope import schema
from plone.directives import form
from bsw.adel import personne
from plone.namedfile.field import NamedImage
from plone import namedfile
from plone.formwidget.namedfile import NamedImageFieldWidget
def get_portrait():
login = api.user.get_current().id
adel_personne = personne.Personne()
ma_personne = adel_personne.get(id_personne=None,
login=login)
if ma_personne is not None:
data = adel_personne.get_picture(id_personne=ma_personne.idPersonne,
photo_filename=None,
mode='v'
)
return namedfile.NamedImage(data=base64.b64decode(data), filename=u'portrait.jpg')
class ISouscripteur(form.Schema):
"""
Souscripteur Schema
"""
form.widget(portrait=NamedImageFieldWidget)
portrait = NamedImage(
title=_(u"Portrait"),
required=False,
defaultFactory=get_portrait
)
Я могу загрузить изображение, которое работает. Но когда я загружаю форму и получаю портрет, я просто вижу пустой входной файл. Данные поступают из внешнего веб-сервиса.
Я пробовал написать метод updateWidgets для обновления значения виджета с помощью NamedImage (согласно документу), но результат тот же.
С помощью отладчика я обнаружил, что значение виджета по-прежнему содержит NamedImage, метод updateWidgets просто заменяет его.
Есть ли что-то, что я пропустил, чтобы показать изображение и переключатели в этом виджете?