繁体   English   中英

如何在表单视图odoo中将所有字段设为只读?

[英]How to make all fields readonly in form view odoo?

我试图在odoov10中将表单视图中的所有字段设为只读。 通过我可以获取所有表单视图字段并将其属性更改为readonly =“ True”的任何python方法?

我不知道这是否是正确的方法,但是您可以使用一种工作方法:

@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
    res = super(Lead, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
    if view_type == 'form':
        res['arch'] = self.fields_view_get_address(res['arch'])
        # res contains the view form, and you can manipulate res string, as you desired.
    return res

或者,您可以使用以下方式在表单视图中禁用编辑选项:

<field ... edit="false" />

您可以将<field name="perm_write" eval="False"/>到当前模型的ir.model.access记录中。 这是一个例子:

<record id="access_stock_return_picking_group_stock_manager" model="ir.model.access">
    <field name="name">Permission Name</field>
    <field name="model_id" ref="model_stock_return_picking"/>
    <field name="group_id" ref="stock.group_stock_manager"/>
    <field name="perm_read" eval="True"/>
    <field name="perm_create" eval="True"/>
    <field name="perm_write" eval="False"/>
    <field name="perm_unlink" eval="True"/>
    <field name="active" eval="True"/>
</record>

有关更多信息,请参见Odoo文档-访问控制

在Odoo 12上,只能通过设置readonly =“ True”(<-CamelCase)来工作。 使用edit =“ False”不会发生任何事情...

I did like this - 
    <record id="hr_expense_inehrited" model="ir.ui.view">
            <field name="name">name</field>
            <field name="model">hr.expense</field>
            <field name="inherit_id" 
     ref="expense_extended.hr_expense_form_view1"/>
            <field name="arch" type="xml">
                <xpath expr="/form/sheet/div/h1/field[@name='name']" 
     position="attributes">
                    <attribute name="readonly">1</attribute>
                </xpath>

            </field>
        </record>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM