[英]NamedImageFieldWidget does not render the image
我有一个这样的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
)
我可以上传图片,可以正常工作。 但是,当我加载表格并获取肖像时,我只会看到一个空的输入文件。 数据来自外部Web服务。
我已经测试过编写一个updateWidgets方法来使用NamedImage更新小部件的值( 根据doc ),但是结果是相同的。
使用调试器,我发现小部件值中仍包含NamedImage,而updateWidgets方法将其替换。
我有什么想在此小部件中显示图像和单选按钮的吗?
您需要的是一个计算字段,根据plone.directives.form文档,z3c.form具有值适配器的概念,该组件可以为属性提供值。
以下是使用第一个标题字段设置默认值的示例; 尝试针对您的用例进行修改。
from plone.directives import form
from zope import schema
class IMySchema(form.Schema):
title = schema.TextLine(title=u"Title")
@form.default_value(field=IMySchema['title'])
def default_title(data):
return data.context.suggested_title
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.