[英]Odoo, create() missing 1 required positional argument: 'vals'
我繼承了account_analytic_line的 create function 。 那里的邏輯是,如果字段support_ticket_id出現在 vals 字典中,它將執行 if 語句中的所有代碼。
@api.model
def create(self, vals):
for val in vals:
if 'support_ticket_id' in val:
ticket_id = vals['support_ticket_id']
ticket = self.env['website.support.ticket'].search([('id', '=', ticket_id)], limit=1)
vals['account_id'] = ticket.analytic_account_id.id
res = super(AccountAnalyticLine, self).create(vals)
return res
奇怪的是,在我當地的環境中運行良好。 但是在生產環境中,拋出了這個錯誤:
類型錯誤:create() 缺少 1 個必需的位置參數:'vals'
更奇怪的是,如果我更改為 @api.multi (我知道它不能在 create 方法中使用,但我只是試了一下)並且在我的本地環境中會拋出同樣的錯誤,但在生產中是工作正常。 所以在本地和生產之間都是倒退的,我不知道是什么觸發了這種情況。
嘗試使用代碼:
@api.model
def create(self, vals):
if vals.get("support_ticket_id"):
ticket_id = vals.get("support_ticket_id")
ticket = self.env['website.support.ticket'].browse(ticket_id)
if ticket.analytic_account_id:
vals['account_id'] = ticket.analytic_account_id.id
res = super(AccountAnalyticLine, self).create(vals)
return res
幾點改進:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.