首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功能字段- OpenErp - issue

功能字段- OpenErp - issue
EN

Stack Overflow用户
提问于 2013-07-28 00:38:49
回答 2查看 435关注 0票数 0

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

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

因此,如果选择了si,那么我在product中创建了一个函数,当purchase_orderstate 'done'中时,它会填充product_product类中的一个新字段

顺便说一句,在product中已经有一个函数可以在状态done, draft或其他任何东西上使用product_qty

我尝试在我的自定义函数中使用:val = _get_product_available_func(('done'))来“调用它”,所以如果在purchase.ordersel_cert字段中选择了si,那么它将返回val,但是我不知道怎么做,这是我的函数,并且在这个函数下有我得到的错误的回溯(不用关心缩进,在我的文件中不是这样的):

代码语言:javascript
复制
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

以及回溯:

代码语言:javascript
复制
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中之前的一个函数

代码语言:javascript
复制
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中的字段sel_certpurchase_order,则需要在purchase_order中返回'si'

但是不知道如何调用它,我应该使用self.browse吗?或者是product_available呢?

对此有什么想法吗?

我希望我已经解释清楚了

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2013-07-28 01:47:43

我猜你想写:

代码语言:javascript
复制
self._get_product_available_func
票数 1
EN

Stack Overflow用户

发布于 2013-08-06 12:56:34

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17900114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档