Я хотел бы создать тип контента, который использует коллективный.z3cform.datagridfield. Я пытаюсь следовать примеру, упомянутому в этой презентации: http://glicksoftware.com/presentations/dexterity-in-the-wildPlone: Тип контента с управляемой моделью с коллективным.z3cform.datagridfield - вставка xml-модели в xml-модель
В примере показан ссылки на вторую схему из основной схемы. Это моя попытка.
<?xml version="1.0" ?>
<model xmlns="http://namespaces.plone.org/supermodel/schema"
xmlns:form="http://namespaces.plone.org/supermodel/form">
<field name="telephone" type="zope.schema.List"
form:widget="collective.z3cform.datagridfield.DataGridFieldFactory">
<title>Telephone</title>
<description>Enter telephone numbers here</description>
<max_length>10</max_length>
<min_length>2</min_length>
<missing_value/>
<readonly>False</readonly>
<required>False</required>
<value_type type="collective.z3cform.datagridfield.DictRow">
<title>Number</title>
<schema>mypackage.mytype.IPhoneSchema</schema>
</value_type>
</field>
</schema>
</model>
Я определяю свою вторую схему в MyPackage/mytype.py выглядеть следующим образом:
from plone.supermodel import model
class IPhoneSchema(model.Schema):
"""Schema for dict rows used in DataGridFields
name is the 'real' name
token is the token used in the vocabularies
"""
#
model.load("models/phone.xml")
, а затем в модели/phone.xml я следующее:
<?xml version="1.0" ?>
<model xmlns="http://namespaces.plone.org/supermodel/schema"
xmlns:form="http://namespaces.plone.org/supermodel/form">
<schema>
<field name="number" type="zope.schema.TextLine">
<description/>
<required>False</required>
<title>Number</title>
</field>
</schema>
</model>
При запуске Plone я получаю следующее сообщение об ошибке:
SupermodelParseError: 'module' object has no attribute 'mytype'
<schema>mypackage.mytype.IPhoneSchema</schema>