我应该添加什么来正确显示user_id和cat
@api.model
def create(self, vals):
record=super(test, self).create(vals)
if vals['total'] > 0:
vals['date'] = fields.Datetime.now()
self.env['journal'].create({
'user_id': record.patient_id,
'cat': record.cat,})
....
.....

树视图(日记)上的
:
user_id显示为test.user(6,)
cat显示为cat1
编辑:
class test(models.Model):
_name = 'test'
cat = fields.Selection(
required=True,
related='test_type_cat.name',
store=True,
)
user_id = fields.Many2one('res.users', string='user', readonly=True,)
.....
@api.model
def create(self, vals):
record=super(test, self).create(vals)
if vals['total'] > 0:
vals['date'] = fields.Datetime.now()
self.env['journal'].create({
'patient_id': record.patient_id.name,
'cat': record.cat,
'user_id': record.user_id.name,
})
record.total = 0
return record

为什么它适用于.name而不是.id? 对于m2o字段,我应该传递整数值吗?如果是这样的话,为什么它在这里使用.name?那么m2m和o2m呢?
答案 0 :(得分:0)
这对您有用,因为您在模型中创建了一条记录:journal
而不是test
模型。
如果您转到journal
模型,您会发现patient_id
为Char
字段而不是many2one
字段。
所以,如果你传递:record.patient_id
你正在传递一个对象并且它被转换为char,这就是你得到test(1,)
的原因。因为pateint_id
是test
模型中的many2one字段,所以该字段是object
。
希望这对你来说有点清楚。