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 之后)。您可以在需要的地方添加小部件。

这个值错误的简单解决方案。