Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Openerp功能域_Python - Fatal编程技术网

Python Openerp功能域

Python Openerp功能域,python,Python,有人能简要解释一下这个代码吗?我是python编程新手 _name = 'sale.order.line' _description = 'Sales Order Line' _columns = { 'invoiced': fields.function(_fnct_line_invoiced, string='Invoiced', type='boolean', store={ 'account.invoice': (_order_lines_from_i

有人能简要解释一下这个代码吗?我是python编程新手

_name = 'sale.order.line'
_description = 'Sales Order Line'
_columns = {
'invoiced': fields.function(_fnct_line_invoiced, string='Invoiced', type='boolean',
        store={
          'account.invoice': (_order_lines_from_invoice, ['state'], 10),
          'sale.order.line': (lambda self,cr,uid,ids,ctx=None: ids, ['invoice_lines'], 10)}),
}

事实上,这是一种特殊函数域的定义

根据定义,openerp功能字段不是要存储在数据库中的典型模型字段,而是对模型中其他字段进行计算的结果

这一次,函数字段定义中的store属性将修改该规则,方法是指示openerp引擎实际获取数据库中的该字段

“账户.发票”:“来自发票的订单行”[“状态”],10

表示如果对“account.invoice”对象中的“state”字段进行任何更改,将调用来自发票的“订单行”函数,优先级为10

说真的,这里解释得更好:


是的!更好的是:

谢谢您的回复。这对我帮助很大。请您解释一下,当另一个对象中的某个字段发生更改时,如何自动运行函数…?提前谢谢。您可能需要使用on_change属性来执行此操作。看看这里,偏离航线,您可能需要在“查询:文本输入框”中进行更改。很抱歉延迟答复。我在openerp 7.0中有一个自定义模块,可以在account.invoice model中创建客户发票。一切正常。但现在我想在发票付款时在同一自定义模块中显示“完成”状态。非常紧急,请帮助我提供示例代码及其详细信息说明——用户3801825