我尝试使用 write ,但我错了,这个方法没有被调用。我真的需要检查没有人能够在status is paid
时编辑发票表单,所以我想覆盖在"编辑按钮"点击。
**编辑:澄清我的问题**
红色方块中的按钮,我想要覆盖的按钮(或者在最好的情况下隐藏')不允许任何人在发票时编辑表格&#39 ;国家是有偿的!
答案 0 :(得分:2)
单击 save 按钮后单击“编辑按钮”时,它始终会调用该对象的 write 方法。除了他们没有具体方法可用。
在Odoo / OpenERP中,发票是确认或支付的,没有人可以编辑它的详细信息。对它设置了一些约束。但是,如果要编辑任何状态的详细信息,而不是修改字段定义。
我们举一个例子:
account_invoice.py
'name': fields.char('Description', size=64, select=True, readonly=True, states={'draft':[('readonly',False)]}),
以下是一些属性效果说明:
现在你的情况:
你需要创建一个自定义模块并覆盖.py方字段声明,如需要删除 readonly = True
如果你想阻止特定状态的编辑而不是使用 states = {'state_name':[('readonly',False)]}
答案 1 :(得分:2)
单击编辑按钮,将不会调用任何方法。点击编辑并访问任何字段后,单击保存按钮然后将调用write方法[***请注意,如果我们只访问任何字段,则会调用它] 。
当您单击“创建”按钮并填写表单然后保存按钮时,将调用create方法。
答案 2 :(得分:2)
我确实需要检查无法在状态为
时编辑发票表单paid
在这种情况下,请检查state
字段,如果是paid
,请将所有字段设为只读。
答案 3 :(得分:0)
在编辑时没有调用方法,但是当你保存write方法时,调用并检查链接here以获取保存方法的详细信息。