我如何将默认值设置为zope.schema.datetime?

时间:2016-09-07 11:46:32

标签: python datetime zope dexterity

我使用Python Dexterity Type编写产品,并且我有一个字段shema.Datetime(见下文),并且我希望在Plone中创建表单时设置默认日期时间。

我尝试使用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 个答案:

答案 0 :(得分:1)

解决方案是使用Python Datetime,而不是Zope DateTime,请参阅代码:

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,
)