2016-09-07 13 views
0

私はPython Dexterity Typeを使って製品をコーディングしています。私は1つのフィールドshema.Datetime(下記参照)を持っています。そして、Ploneでフォームが作成されたときのデフォルトの日付時刻を設定します。デフォルト値をzope.schema.datetimeに設定する方法は?

Zope DateTimeとPython DateTimeを試してみましたが、うまくいきません。 docs zope schemaには、この例はありません。

# I'm tried use this options with DateTime 
from DateTime import DateTime 
# DateTimeNow = DateTime() 
# DateTimeNow = DateTime().asdatetime() 

# And tried use datetime 
import datetime 
DateTimeNow = datetime.datetime.now() 

class IDigitalFile(model.Schema): 
    ... 

    uploded_at = schema.Datetime(
     title=_(u"Data de Upload"), 
     required=True, 
     defaultFactory=DateTimeNow, 
    ) 

この場合、どのようにデフォルト値を設定しますか?

+1

括弧なしで、 '' DateTimeNow = datetime.datetime.now''を使用しようとしています。 – turkus

+0

@turkusが言った、言い換えれば、*(値)*の代わりに*を生成する呼び出し可能な(工場で)呼び出し可能なもの。 [plone docs](http://docs.plone.org/external/plone.app.dexterity/docs/advanced/defaults.html)から: "defaultFactoryは、addフォームがロードされたときに呼び出される関数ですデフォルト値を決定してください。 " –

+0

@turkus出力を試しました。TypeError:メタクラスベースを呼び出すときのエラー unhashableタイプ: 'list' > /home/jafar/training/buildout/eggs/zope.interface-3.6.7-py2.7- linux-x86_64.egg/zope/interface/interface.py(415)get() ' –

答えて

0

溶液は、Python日時を用いて、Zopeの日時は、コード表示されない:

from datetime import datetime 
... 
def nowDateTime(): 
    return datetime.today() 

... 
directives.mode(uploded_at="hidden") 
uploded_at = schema.Datetime(
    title=_(u"Data de Upload"), 
    required=True, 
    defaultFactory=nowDateTime, 
) 
関連する問題