Odoo 12 - TypeError: create()缺少1个必要的位置参数:'vals'

问题描述 投票:0回答:1

我试图获得邮件,当一个新的记录创建和修改的字段在CRM模块,所以我已经定义了这个功能,有人帮助我这个问题。

在py文件中。

    @api.multi
    def write(self, vals):
        if 'lead_status' in vals and self.ids:
            for rec in self:
                template = self.env.ref('crm_extended.crm_lead_mail_template')
                template.send_mail(rec.id, force_send=True)          
        return super(crm_extended, self).write(vals)

    @api.model
    def create(self, vals):
        rec = super(crm_extended, self).create(vals)
        if 'opportunity_id' in vals:
            template = self.env.ref('crm_extended.create_crm_lead_mail_template')
            for rec in self:
                template.send_mail (rec.id, force_send=True) 
        return rec

    @api.multi
    def create(self, vals):
        res = super(crm_extended,self).create(vals)
        if res and res.customer_name:
            template = self.env.ref ('crm_extended.create_crm_lead_mail_template')
            template.send_mail (res.id, force_send = True)          
        return res

when the change the state or give save, odoo popping me an error as below 
Error:
Odoo Server Error

Traceback (most recent call last):
  File "/opt/odoo/odoo-12.0/odoo/http.py", line 656, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo-12.0/odoo/http.py", line 314, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/opt/odoo/odoo-12.0/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/opt/odoo/odoo-12.0/odoo/http.py", line 698, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/odoo-12.0/odoo/http.py", line 346, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo-12.0/odoo/service/model.py", line 98, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo-12.0/odoo/http.py", line 339, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo/odoo-12.0/odoo/http.py", line 941, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/odoo-12.0/odoo/http.py", line 519, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/odoo-12.0/addons/web/controllers/main.py", line 962, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/opt/odoo/odoo-12.0/addons/web/controllers/main.py", line 954, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/opt/odoo/odoo-12.0/odoo/api.py", line 759, in call_kw
    return _call_kw_multi(method, model, args, kwargs)
  File "/opt/odoo/odoo-12.0/odoo/api.py", line 746, in _call_kw_multi
    result = method(recs, *args, **kwargs)
TypeError: create() missing 1 required positional argument: 'vals'

idk什么是错的,我做了,当我复制一个旧的记录,并给保存它的工作,这是奇怪的。

odoo odoo-10 odoo-11 odoo-12
1个回答
0
投票

你犯了一个错误:你不能使用"..."。@api.multi 到odoo的创建方法。

你必须使用 @api.model

© www.soinside.com 2019 - 2024. All rights reserved.