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

How I set default value to zope.schema.datetime?

我使用 Python 敏捷类型编码产品,我有一个字段 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,
    )

那么,在这种情况下如何设置默认值?

解决方案是使用 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,
)