簡體   English   中英

NamedImageFieldWidget不呈現圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM