odoo-默认值-default

默认值

任何字段都可以设置默认值。在字段定义中,添加选项default=X,X可以是一个Python文字值value (boolean, integer, float, string),或者是一个承载记录集并返回值的方法:

name = fields.Char(default="Unknown")
user_id = fields.Many2one('res.users', default=lambda self: self.env.user)

对象self.env给出了请求参数和其他有用资源的访问:

  • self.env.cr或者self._cr:数据库游标对象,用于查询数据库
  • self.env.uid或者self._uid:当前数据库的ID
  • self.env.user:当前用户的记录
  • self.env.context或者self._context:上下文字典
  • self.env.ref(xml_id):返回一个XML的id所对应的记录
  • self.env[model_name]:返回给定模型的一个实例

练习

有效对象 – 默认值

  • 把start_date默认值定义为今天(查看Date)。
  • 在课务类中添加一个active字段,并设置课务默认为有效。

openacademy/models.py

   _name = 'openacademy.session'
   name = fields.Char(required=True)
   start_date = fields.Date(default=fields.Date.today)
   duration = fields.Float(digits=(6, 2), help="Duration in days")
   seats = fields.Integer(string="Number of seats")
   active = fields.Boolean(default=True)
   instructor_id = fields.Many2one('res.partner', string="Instructor",
       domain=['|', ('instructor', '=', True),

openacademy/views/openacademy.xml

                               <field name="course_id"/>
                               <field name="name"/>
                               <field name="instructor_id"/>
                               <field name="active"/>
                           </group>
                           <group string="Schedule">
                               <field name="start_date"/>

Odoo有内置的规则,使active字段为False的字段设置为不可见。

posted @ 2018-06-21 17:26  LeeeetMe  阅读(855)  评论(0编辑  收藏  举报