我想引用我继承的模型(plot.allocate)formdownload模型form_serial_no领域。不用下拉菜单来显示form_serial_no的计算值,该值是用序列填充的company_short_code,例如CCK0000006,它显示“CCK”,它是不包括序列的company_short_code的值。实际上,它引用的是公司名称模型的company_short_code,而不是formdownload模型的form_serial_no的计算值。而在数据库中,form_serial_no字段显示的是正确的记录,类似于...... ABC0000008,CDG0000003等等。这是我的问题,是否有任何理由为什么form_serial_no_id plot.allocate模型的Many2one字段没有选择form_serial_no formdownload的Char字段的值,而是选择companyname模型的company_short_code Char字段?继承模型many2one选择了错误的字段值
其次,如何更改公司名称模型记录的真状态字段默认值,当值plot.allocate模型form_serial_no_id Many2one场挑?
请帮我看看这些。
下面是我的代码段
# -*- coding: utf-8 -*-
from openerp import models, fields, api
class CompanyName(models.Model):
_name = 'companyname'
_rec_name = 'company_short_code'
company_name = fields.Char(string="Company Name", required=True)
company_short_code = fields.Char(string="Company short code", required=True)
class FormDownload(models.Model):
_name = 'formdownload'
_rec_name = 'form_serial_no'
name = fields.Many2one('companyname', string="Company Name", ondelete='cascade',
required=True)
form_serial_no = fields.Char(string="Form Serial No", readonly=True)
status = fields.Boolean(string="Status", default=False)
@api.model
def create(self, vals):
serial_no = self.env['ir.sequence'].get('formdownload.form_serial_no')
code = self.env['companyname'].browse(vals['name']).company_short_code
# capitalize company short code values
code = code.upper()
# merge code and serial number
vals['form_serial_no'] = code + serial_no
return super(FormDownload, self).create(vals)
class PlotAllocation(models.Model):
_inherit = 'plot.allocate'
form_serial_no_id = fields.Many2one('formdownload',
domain=[('status', '=', False)],
ondelete='cascade', string="Form Serial No")
@api.model
def create(self, vals):
record = self.env['formdownload'].search([('name', 'like', vals.get('name', False))]).form_serial_no
status = self.env['companyname'].search([('name', 'like', vals.get('name', False))]).status
if vals.get('form_serial_no_id') == record.id:
self.env['companyname'].write({status : True})
return super(PlotAllocation, self).create(vals)
:名称 ?因为你在问vals是否包含'name' – Cherif
不,我没有keyerror。 – John