2017-07-25 89 views
0

我应该怎么添加到显示USER_ID和猫正确我应该添加什么来正确显示字段的值?

@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,}) 
 
       .... 
 
       .....

树视图(日志):为test.user(6,) 猫显示为cat1

显示

USER_ID

EDITS:

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? for m2o field should I pass the integer value?如果是这种情况,为什么它在.name这里工作?那么m2m和o2m呢?

回答

0

这对你有效,因为你正在创建一个模型的记录:journal不在test模型。

如果你去journal模型,你会发现patient_idChar字段不是many2one字段。

所以如果你通过:record.patient_id你传递一个对象,它被转换为字符,这就是为什么你得到test(1,)。因为pateint_idtest中的many2one字段,型号女巫的意思是object

希望这个清晰的东西为你一点点。

+0

是猫的类型是选择 – Borealis

+0

'user_id':record.patient_id.id,'而不是'test.user(6,)'它显示'1'但是'user_id':record.patient_id.name ,'显示正确的名称 – Borealis

+0

您是否声明了user_id m2o字段或char? – Cherif

相关问题