我应该添加什么才能正确显示字段的值?

what should I add to display the value of fields correctly?

我应该添加什么才能正确显示 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 呢?

这对你有用,因为你在模型中创建记录:journal 不在 test 模型中。

如果您转到 journal 模型,您会发现 patient_idChar 字段而不是 many2one 字段。

所以如果你通过:record.patient_id 你正在传递一个对象并且它被转换为 char 这就是你得到 test(1,) 的原因。因为 pateint_idtest 模型中的一个 many2one 字段 意思是 object.

希望这篇文章对你有所帮助。