0

我添加了一个selection类型字段,在purchase.py它的类purchase.order中,这个字段被称为

sel_cert'sel_cert' : fields.selection([('si', 'Si'),('no','No')], 'Origen Certificado'),

所以如果si被选中,我做了一个函数,它在类中product填充一个新字段product_productpurchase_orderstate 'done'

顺便说一句,已经有一个函数可以接受product_qty状态done, draft或任何内容product

我尝试在我的自定义函数中使用:“调用它” val = _get_product_available_func(('done')),所以val如果在 中的字段中si选择它,它会返回,但是我知道如何做,这是我的函数,在这个函数下有我的错误的回溯获取(不关心缩进,在我的文件中不是这样的):sel_certpurchase.order

def desc_cert(self, cr, uid, ids, field_name, field_args, context=None):  
        obj = self.pool.get('purchase.order')  
        val = _get_product_available_func(('done'))  
        if obj.sel_cert == 'si':  
                return val

和追溯:

Server Traceback (most recent call last):
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\openerp\addons\web\session.py", line 89, in send
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\netsvc.py", line 292, in dispatch_rpc
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\service\web_services.py", line 626, in dispatch
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\osv\osv.py", line 188, in execute_kw
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\osv\osv.py", line 131, in wrapper
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\osv\osv.py", line 197, in execute
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\osv\osv.py", line 185, in execute_cr
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\osv\orm.py", line 3604, in read
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\osv\orm.py", line 3724, in _read_flat
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\.\openerp\osv\fields.py", line 1133, in get
File "C:\Program Files\OpenERP 7.0-20130726-231403\Server\server\openerp\addons\product\product.py", line 456, in desc_cert
NameError: global name '_get_product_available_func' is not defined

_get_product_available_func模块中的一个函数也是如此product.py

def _get_product_available_func(states, what):
    def _product_available(self, cr, uid, ids, name, arg, context=None):
        return {}.fromkeys(ids, 0.0)
    return _product_available

_product_qty_available = _get_product_available_func(('done',), ('in', 'out'))
_product_certificado_qty = _get_product_available_func(('done',), ('in', 'out'))
_product_virtual_available = _get_product_available_func(('confirmed','waiting','assigned','done'), ('in', 'out'))
_product_outgoing_qty = _get_product_available_func(('confirmed','waiting','assigned'), ('out',))
_product_incoming_qty = _get_product_available_func(('confirmed','waiting','assigned'), ('in',))

如果这个字段是product_qty_available,我需要返回productsel_certpurchase_order'si'

但不知道怎么称呼它,我应该使用self.browse吗?或者也许product_available相反?

对此有什么想法吗?

我希望我已经解释了自己

提前致谢

4

2 回答 2

1

我猜你想写:

self._get_product_available_func
于 2013-07-27T17:47:43.370 回答
0

使用 self.pool.get('编写函数的类名')._get_product_available_func

于 2013-08-06T04:56:33.627 回答