向模型中添加字段
来自Odoo大V社-odoo中文开发手册
我们将添加几个字段到todo.task模型,包括添加一个任务的所属用户和一个截至日期。创建model文件夹,在文件夹下面创建一个文件名称为todo_task.py文件(即创建todo_user / models / todo_task.py文件),该文件包含一个用于对之前某个原来的类进行继承和扩展的类,具体代码如下:
# -*- coding: utf-8 -*- from odoo import models, fields, api class TodoTask(models.Model): _inherit = 'todo.task' user_id = fields.Many2one('res.users', 'Responsible') date_deadline = fields.Date('Deadline')
这里用到的类名为TodoTask,虽然和本书之前例子程序里面所采用的类的名字一样,但是没关系,其作用域仅限于本模块,和其他模块无关。类的属性_inherit是关键字:它告诉Odoo,这个类是从类名为todo.task类继承。注意这里不再需要_name属性。因为这个属性已经从父模型(类)继承下来。
接下来的两行是常规字段声明。user_id表示在所有系统用户集中的某一个用户名,res.users是所有系统用户集, many2one是一个多对一关系,相当于数据库中的外键。date_deadline是一个简单的日期字段。我们将在5章(模型–构建应用数据)更详细的解释field字段的应用。
接下来在model文件夹里面还需要创建一个__init__.py文件,代码如下:
#-*- coding:utf-8 -*- #!/usr/bin/env python from . import todo_task
至此,就可以执行模块升级操作了,如果上面的代码都没有写错并且模块升级成功的话,我们可以通过进入菜单Setting|Technical|Database Structure|Models,并在搜索栏里面搜索todo.task查看类的细节,在Field Name中可以看到刚才添加的user_id和date_deadline属性。
上一节:扩展模型 下一节:修改现有字段