2016-09-06 10 views
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 _

+0

を参照してください。スタックトレースはありますか?あなたはPython 2を使っていますか?盲目的な推測では、i18nシステムは "unicode"文字列を期待している間にあなたのコードに "str"文字列を与えています。 – daragua

+0

Plone 4.3.10(4313)、Python 2.7.12、Zope 2.13.24。私はこのURLのようなものを見つけました。https://github.com/plone/Products.CMFPlone/issues/386 –

+0

'projetime.ged.MessageFactory'が何であるか分かりませんが、' _'としてインポートしています。実際に 'ploneconf.site.MessageFactory'と同じオブジェクトであれば、バグレポートと同じ問題が発生しています。それが本当であれば、そのインポートを 'ploneconf.site import _から'に置き換えてみてください。私はあなたを助けることができないのではないかと恐れています! – daragua

答えて

関連する問題