我误解了什么吗?我想保存列表列表或一组列表......
我有这个
fcurricula = schema.List(
title=_(u'Curricula'),
required=False)
我试图保存这个:
[
[261, u'26-BEA', 138, 4, u'h\xf6ren, listen', 4.00, 0, u'655755sa939b9b10'],
[261, u'26-BEA', 138, 4, u'h\xf6ren, listen', 4.00, 0, u'655755sa939b9b10']
]
但我得到以下错误
Module zope.tales.expressions, line 217, in __call__
Module Products.PageTemplates.Expressions, line 155, in _eval
Module Products.PageTemplates.Expressions, line 117, in render
Module dudal.db.browser.dbimport, line 216, in dudal_fcurricula_import
Module plone.registry.registry, line 47, in __setitem__
Module plone.registry.record, line 83, in _set_value
Module zope.schema._bootstrapfields, line 182, in validate
Module zope.schema._field, line 475, in _validate
Module zope.schema._bootstrapfields, line 309, in _validate
Module zope.schema._bootstrapfields, line 248, in _validate
Module zope.schema._bootstrapfields, line 233, in _validate
Module zope.schema._bootstrapfields, line 209, in _validate
WrongType: ([[261, u'26-BEA', 138, 4, u'h\xf6ren, listen', 4.0, 0, u'655755sa939b9b10'], [261, u'26-BEA', 138, 4, u'h\xf6ren, listen', 4.0, 0, u'655755sa939b9b10']], <type 'set'>, 'value')
答案 0 :(得分:1)
您需要定义列表元素的value_type。在你的情况下,还list
- &gt;嵌套列表。
您可以尝试这样的事情:
fcurricula = schema.List(
title=_(u'Curricula'),
required=False)
value_type=schema.List(...)
但我不知道这个用例是否有一个小部件。
从我的角度来看,适合您的小部件是一个数据网格小部件。 - &GT; https://github.com/collective/collective.z3cform.datagridfield
它存储了一个词典列表。
如果可以在嵌套列表中正确命名列,则可以使用带有value_type="DictRow"
的List字段和datagridwidget。
由于您必须定义单独的架构,您还可以确保,您的列表包含有效数据。