【问题标题】:want to make fields readonly if the record is saved , openerp如果记录被保存,想要使字段只读,openerp
【发布时间】:2012-09-02 14:19:35
【问题描述】:

如果记录已保存,我想将某些字段 (checkboxes) 设为只读。下一个分配的人可以在某些领域发生变化。但是必须限制某些字段,任何人都无法更改它们。这样做的一种方法是赋予用户或组权限。但我想以另一种方式。有什么办法吗?

【问题讨论】:

    标签: crm openerp erp


    【解决方案1】:

    这个条件很好用

    <field name="freezing_on_all_channels" attrs="{'readonly':[('id','!=', False)]}"/>

    attrs="{'readonly':[('id','!=',0)]}"(注意:引号中的0不是'0'),

    你只是犯了一个错误;如果你把 <"field name="id" invisible="1"/> 也在视图中,然后它将按预期工作。

    谢谢

    【讨论】:

    • 它解决了我的问题,但你在最后一句中说了什么,我无法理解。您还必须将“field name="id" invisble="1"/>” 放在视图中吗?我只删除报价及其工作。
    • 这个解决方案在所有情况下都能很好地工作,不像“状态”测试只适用于有状态的对象(例如 res.partner 没有状态)
    【解决方案2】:


    当状态改变时是可能的。
    您可以通过在 .xml 中写入“attrs={}”属性来实现。
    例如:


    希望这能解决您的问题。
    谢谢...

    【讨论】:

    • 似乎很好的解决方案。我试过了,但它不起作用。为什么我不知道。
    • 我尝试了另一种解决方案,即 .它起作用了,我不知道它是否更好用。请指导?
    • 上述解决方案 也不起作用.我认为'!='不起作用。请指导我?
    • 除非有“保存”状态,否则这将不起作用。另外,如果还有其他状态,则在状态更改后该字段将再次可编辑。
    • 这只是一个关于如何根据条件使您的字段只读的示例。
    【解决方案3】:

    下面试试

    'your_field': fields.char('Name', type='char',store=True,readonly=True),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      相关资源
      最近更新 更多