我尝试使用account.invoice表格' no editable'发票状态是否已付款'。 这是我在acount.invoice类中的代码:
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False):
result=super(account_invoice, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
if(view_type=='form'):
invoice=self.pool.get('account.invoice')
active_id=context.get('active_id',False)
current_state=invoice.browse(cr,uid,active_id).state
if current_state=="paid":
result['arch']='''<form string="Invoice" edit="false" ....................></form>'''
return result
但看起来像context.get(&#39; active_id&#39;,False)总是返回&#34; false&#34;。
提前感谢:)
答案 0 :(得分:0)
您可以修改您不希望别人编辑的字段的XML,并为其提供如下属性:
<field name="your_field" attrs="{'readonly':[('state','in','paid')]}"/>
或者您可以从模型继承write方法并插入检查以查看当前状态并引发异常。
编辑: 您可以通过编辑表单隐藏/删除按钮
<form string="NAMEOFFORM" create="false" edit="false" version="7.0"></form>