Plone:新订单中的字段数与模式中的字段数不同
Plone: The number of fields in the new order differs from the number of fields in the schema
我有一个 batch.py 文件,里面有很多字段。所以我正在尝试根据我的要求在 batch.py 中添加一个新的 ReferenceField。
ExtReferenceField('Asfield',
required = 0,
multiValued=1,
allowed_types = ('AnalysisService',),
referenceClass = HoldingReference,
relationship = 'BatchAsfield',
widget=SearchAnalysisWidget(
label=_("AS Search"),
description="",
render_own_label=False,
visible={'edit': 'visible', 'view': 'visible'},
#visible=True,
base_query={'inactive_state': 'active'},
catalog_name='portal_catalog',
showOn=True,
colModel = [{'columnName':'AsCode','width':'20','label':_('Code')},
{'columnName':'AsName','width':'80','label':_('Name')},
{'columnName':'AsDate','width':'80','label':_('Date')},
{'columnName':'AsTat','width':'80','label':_('TAT')},
{'columnName':'AsLocation','width':'80','label':_('Location')},
],
),
),
它给我这样的错误:
ValueError: The number of fields in the new order differs from the
number of fields in the schema.
我得到了这个错误的解决方案。出现此错误是因为我没有在 batch.py[=25= 的 getOrder 方法中添加我的 Asfield ] 文件。
实际上,我们的小部件需要特定的顺序才能在 browser.So 处显示,通过使用 getOrder 方法,我们可以维护所有小部件(字段)在浏览器中的顺序。此 getOrder 在同一文件中定义 batch.py.
def getOrder(self, schematas):
schematas['default'] = ['id',
'title',
'description',
'BatchID',
'ClientPatientID',
'Patient',
'Client',
'Doctor',
'Asfield',
'ClientBatchID',
'ReceiptNo',
'AmountPaid',
'BatchDate',
'OnsetDate',
'PatientAgeAtCaseOnsetDate',
]
return schematas
我只是在 Doctor 之后添加 Asfield (ReferenceField)(在浏览器中,这个 Referencewidget 将显示在 Doctor 之后)。您可以在需要的地方添加小部件。
这个值错误的简单解决方案。
我有一个 batch.py 文件,里面有很多字段。所以我正在尝试根据我的要求在 batch.py 中添加一个新的 ReferenceField。
ExtReferenceField('Asfield',
required = 0,
multiValued=1,
allowed_types = ('AnalysisService',),
referenceClass = HoldingReference,
relationship = 'BatchAsfield',
widget=SearchAnalysisWidget(
label=_("AS Search"),
description="",
render_own_label=False,
visible={'edit': 'visible', 'view': 'visible'},
#visible=True,
base_query={'inactive_state': 'active'},
catalog_name='portal_catalog',
showOn=True,
colModel = [{'columnName':'AsCode','width':'20','label':_('Code')},
{'columnName':'AsName','width':'80','label':_('Name')},
{'columnName':'AsDate','width':'80','label':_('Date')},
{'columnName':'AsTat','width':'80','label':_('TAT')},
{'columnName':'AsLocation','width':'80','label':_('Location')},
],
),
),
它给我这样的错误:
ValueError: The number of fields in the new order differs from the number of fields in the schema.
我得到了这个错误的解决方案。出现此错误是因为我没有在 batch.py[=25= 的 getOrder 方法中添加我的 Asfield ] 文件。
实际上,我们的小部件需要特定的顺序才能在 browser.So 处显示,通过使用 getOrder 方法,我们可以维护所有小部件(字段)在浏览器中的顺序。此 getOrder 在同一文件中定义 batch.py.
def getOrder(self, schematas):
schematas['default'] = ['id',
'title',
'description',
'BatchID',
'ClientPatientID',
'Patient',
'Client',
'Doctor',
'Asfield',
'ClientBatchID',
'ReceiptNo',
'AmountPaid',
'BatchDate',
'OnsetDate',
'PatientAgeAtCaseOnsetDate',
]
return schematas
我只是在 Doctor 之后添加 Asfield (ReferenceField)(在浏览器中,这个 Referencewidget 将显示在 Doctor 之后)。您可以在需要的地方添加小部件。
这个值错误的简单解决方案。