0
私のpythonを使用して1敏捷タイプを作成し、コードは次のとおりです。Python Dexterity TypeでUnicodeエラーを修正する方法は?
# -*- coding: utf-8 -*-
from plone.app.textfield import RichText
from plone.autoform import directives
from plone.namedfile import field as namedfile
from plone.supermodel.directives import fieldset
from plone.supermodel import model
from z3c.form.browser.radio import RadioFieldWidget
from zope import schema
from zope.schema.vocabulary import SimpleVocabulary
from zope.schema.vocabulary import SimpleTerm
from DateTime import DateTime
from projetime.ged import MessageFactory as _
TipoDeDocumentoVocabulary = SimpleVocabulary(
[SimpleTerm(value=u'processo', title=_(u'Processos')),
SimpleTerm(value=u'contratos', title=_(u'Contratos')),
SimpleTerm(value=u'outros', title=_(u'Outros'))]
)
TipoDeUploadVocabulary = SimpleVocabulary(
[SimpleTerm(value=u'sim', title=_(u'Sim')),
SimpleTerm(value=u'nao', title=_(u'Não'))]
)
agora = DateTime()
class IDigitalFile(model.Schema):
"""Dexterity-Schema
"""
directives.widget(TipoDeDocumento=RadioFieldWidget)
TipoDeDocumento = schema.Choice(
title=_(u"Tipo de Documento"),
vocabulary=TipoDeDocumentoVocabulary,
required=True
)
titulo = schema.TextLine(
title=_(u"Título"),
required=True
)
codDoDocumento = schema.TextLine(
title=_(u"Cód. do Documento"),
required=False
)
CpfCnpj = schema.TextLine(
title=_(u"CPF/CNPJ"),
required=False
)
Assunto = schema.TextLine(
title=_(u"Assunto"),
required=True
)
Tipo = schema.TextLine(
title=_(u"Tipo"),
required=False
)
Descricao = schema.Text(
title=_(u"Descrição"),
required=True
)
fieldset('File', fields['Arquivo'])
Arquivo = namedfile.NamedBlobFile(
title=_(u"Arquivo Digitalizado"),
required=True
)
directives.omitted(['Automatico', 'uploded_at'])
directives.read_permission(Automatico="cmf.ManagePortal")
directives.write_permission(Automatico="cmf.ManagePortal")
directives.widget(Automatico=RadioFieldWidget)
Automatico = schema.Bool(
Title=_(u"Upload via Script?"),
vocabulary=TipoDeUploadVocabulary,
required=True,
default=u"Não"
)
directives.read_permission(uploded_at="cmf.ManagePortal")
directives.write_permission(uploded_at="cmf.ManagePortal")
uploded_at = schema.Datetime(
title=_(u"Data de Upload"),
required=True,
default=agora
)
し、エラーがある:
WrongType: (<zope.i18nmessageid.message.MessageFactory object at 0x7f118f168890>, <type 'unicode'>, 'title')
私は拳ラインに設定します。
# -*- coding: utf-8 -*-
しかし、エラーは解決しません。
from projetime.ged import MessageFactory as _
:
を参照してください。スタックトレースはありますか?あなたはPython 2を使っていますか?盲目的な推測では、i18nシステムは "unicode"文字列を期待している間にあなたのコードに "str"文字列を与えています。 – daragua
Plone 4.3.10(4313)、Python 2.7.12、Zope 2.13.24。私はこのURLのようなものを見つけました。https://github.com/plone/Products.CMFPlone/issues/386 –
'projetime.ged.MessageFactory'が何であるか分かりませんが、' _'としてインポートしています。実際に 'ploneconf.site.MessageFactory'と同じオブジェクトであれば、バグレポートと同じ問題が発生しています。それが本当であれば、そのインポートを 'ploneconf.site import _から'に置き換えてみてください。私はあなたを助けることができないのではないかと恐れています! – daragua