首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >odoo v8 :重写mrp.bom的create()函数时遇到错误

odoo v8 :重写mrp.bom的create()函数时遇到错误
EN

Stack Overflow用户
提问于 2015-05-20 22:18:04
回答 2查看 315关注 0票数 2

我正在尝试重写mrp.bom的create()函数,如果product.template中有一个字段,我将在其中更改该值,但当我按下‘保存’时,我会遇到这个错误:

代码语言:javascript
复制
res = super(bom_override, self).create(vals)
TypeError: super(type, obj): obj must be an instance or subtype of type

我寻找了原因,我找到的每一个原因,我检查了我的代码,没有什么可以解决的,我希望任何人都能帮助我。

下面是我的代码:

代码语言:javascript
复制
class bom_override(models.Model):
    _name = 'mrp.bom'
    _inherit = 'mrp.bom'

    @api.model
    def create(self, vals):
        product_obj = self.env['product.template'].search([('id','=',vals['product_id'])])
        product_obj.write({'has_bom':True})
        res = super(bom_override, self).create(vals)
        return res

先谢谢你...

EN

回答 2

Stack Overflow用户

发布于 2015-06-25 16:01:13

请尝试以下操作:

代码语言:javascript
复制
class bom_override(models.Model):
_name = 'mrp.bom'
_inherit = 'mrp.bom'

@api.model
def create(self, cr, uid, vals, context=None):
    product_obj = self.env['product.template'].sudo().search_read([('id','=',vals['product_id'])])
    product_obj.write({'has_bom':True})
    res = super(bom_override, self).create(cr, uid, vals, context=context)
    return res
票数 0
EN

Stack Overflow用户

发布于 2016-05-09 19:59:20

我已经尝试过覆盖create()函数,它对我很有效。这是我的代码:

代码语言:javascript
复制
    class Partner(models.Model):
      _inherit = 'res.partner'
      ....

      @api.model
        def create(self, vals):
          template_obj = self.env['template.partner']
          obj = super(Partner, self).create(vals)
          template_obj.create({
            'local_id' : obj.id,
            'name' : obj.name,
            'update_date' : datetime.now(),
            })
          return obj
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30352383

复制
相关文章

相似问题

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