oma*_*mas 3 python xml odoo odoo-10 odoo-12
我正在尝试将模块从 Odoo 10 迁移到 12,但它向我显示此错误,我不明白为什么:
\n\n\n\n\n属性中使用的字段“状态”必须出现在视图中,但缺失
\n
你能帮我解决这个问题吗:
\n\nField \'state\' used in attributes must be present in view but is missing:\n - \'state\' in attrs="{\'invisible\': [\'|\',\'|\',(\'journal_entry_ids\', \'!=\', []), (\'state\', \'=\', \'confirm\'),(\'type\', \'!=\', \'bank\')]}"\n - \'state\' in attrs="{\'invisible\': [\'|\',\'|\',(\'journal_entry_ids\', \'=\', []), (\'state\', \'=\', \'confirm\'),(\'type\', \'!=\', \'bank\')]}"\n\nError context:\nView `account.bank.statement.form.reconciliation`\n[view_id: 1684, xml_id: n/a, model: account.bank.statement, parent_id: 462]\nNone while parsing /home/PycharmProjects/Odoo12/bank_reconciliation/views/account_view.xml:4, near\n<record id="view_bank_statement_form_reconciliation" model="ir.ui.view">\n <field name="name">account.bank.statement.form.reconciliation</field>\n <field name="model">account.bank.statement</field>\n <field name="inherit_id" ref="account.view_bank_statement_form"/>\n <field name="arch" type="xml">\n <data>\n <field name="date" position="after">\n <field name="type" invisible="1"/>\n </field>\n <xpath expr="//button[1]" position="attributes">\n <attribute name="attrs">{\'invisible\': [(\'type\', \'!=\', \'cash\')]}</attribute>\n </xpath>\n <xpath expr="//field[@name=\'line_ids\']/tree/field[@name=\'bank_account_id\']" position="after">\n <field name="type" invisible="1"/>\n <button name="select_account_move_line" type="object" icon="fa-registered" attrs="{\'invisible\': [\'|\',\'|\',(\'journal_entry_ids\', \'!=\', []), (\'state\', \'=\', \'confirm\'),(\'type\', \'!=\', \'bank\')]}"/>\n </xpath>\n <xpath expr="//field[@name=\'line_ids\']/tree/field[@name=\'bank_account_id\']" position="after">\n <button name="cancel_reconciliation" type="object" icon="fa-chain-broken" attrs="{\'invisible\': [\'|\',\'|\',(\'journal_entry_ids\', \'=\', []), (\'state\', \'=\', \'confirm\'),(\'type\', \'!=\', \'bank\')]}"/>\n </xpath>\n <xpath expr="//field[@name=\'line_ids\']" position="inside">\n <form string="Statement Line" create="false">\n <group col="4">\n <field name="statement_id"/>\n <field name="date"/>\n <field name="name"/>\n <field name="ref"/>\n <field name="partner_id"/>\n <field name="amount"/>\n <field name="journal_currency_id" invisible="1"/>\n <field name="sequence"/>\n <field name="note"/>\n </group>\n <notebook colspan="4">\n <page string="Ecritures li\xc3\xa9es">\n <field name="move_line_ids">\n <tree readonly="1">\n <field name="name"/>\n <field name="account_id"/>\n <field name="move_id"/>\n <field name="date"/>\n <field name="debit" sum="D\xc3\xa9bit"/>\n <field name="credit" sum="Cr\xc3\xa9dit"/>\n </tree>\n </field>\n </page>\n </notebook>\n </form>\n </xpath>\n </data>\n </field>\n</record>\n
Run Code Online (Sandbox Code Playgroud)\n\n该错误表明属性“state”不存在于父视图中,但它存在。
\n\n这是父视图:
\n\n<record id="view_bank_statement_form" model="ir.ui.view">\n <field name="name">account.bank.statement.form</field>\n <field name="model">account.bank.statement</field>\n <field name="priority">1</field>\n <field name="arch" type="xml">\n <form string="Bank Statement">\n <header>\n <field name="all_lines_reconciled" invisible="1" />\n <button name="%(action_bank_reconcile_bank_statements)d" string="Reconcile" type="action" class="oe_highlight" attrs="{\'invisible\':[\'|\',\'|\',(\'all_lines_reconciled\',\'=\',True),(\'line_ids\',\'=\',[]),(\'state\', \'!=\', \'open\')]}"/>\n <button name="check_confirm_bank" string="Validate" type="object" class="oe_highlight" attrs="{\'invisible\':[\'|\',\'|\',(\'all_lines_reconciled\',\'=\',False),(\'line_ids\',\'=\',[]),(\'state\', \'!=\', \'open\')]}"/>\n <field name="state" widget="statusbar" statusbar_visible="open,confirm"/>\n </header>\n ...\n </field>\n</record>\n
Run Code Online (Sandbox Code Playgroud)\n
当你写这样的东西时:
<xpath expr="//field[@name='line_ids']/tree/field[@name='bank_account_id']" position="after">
...
</xpath>
Run Code Online (Sandbox Code Playgroud)
您添加的所有内容都与 x2many 字段的 comodelline_ids
及其树视图相关。因此,如果您添加带有参数的新字段/按钮attrs
,则必须检查域左侧的属性是否位于 的树视图内line_ids
,而不是位于 的表单内account.bank.statement
。
因此,您必须将字段状态添加到字段的树视图中line_ids
:
<xpath expr="//field[@name='line_ids']/tree/field[@name='bank_account_id']" position="after">
<field name="type" invisible="1"/>
<field name="state" invisible="1"/>
<button name="select_account_move_line" type="object" icon="fa-registered" attrs="{'invisible': ['|','|',('journal_entry_ids', '!=', []), ('state', '=', 'confirm'),('type', '!=', 'bank')]}"/>
<button name="cancel_reconciliation" type="object" icon="fa-chain-broken" attrs="{'invisible': ['|','|',('journal_entry_ids', '=', []), ('state', '=', 'confirm'),('type', '!=', 'bank')]}"/>
</xpath>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您重复相同的操作xpath
两次,这对于 Odoo 来说很混乱且速度较慢,因此我将其分组为更有意义的一个。
归档时间: |
|
查看次数: |
830 次 |
最近记录: |