“向模型中添加字段”的版本间的差异
来自Odoo大V社-odoo中文开发手册
第1行: | 第1行: | ||
− | 我们将添加几个字段到todo. | + | 我们将添加几个字段到todo.task模型,包括添加一个任务的所属用户和一个截至日期。创建model文件夹,在文件夹下面创建一个文件名称为todo_task.py文件(即创建todo_user / models / todo_task.py文件),该文件包含一个用于对之前某个原来的类进行继承和扩展的类,具体代码如下: |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
# -*- coding: utf-8 -*- | # -*- 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属性。 | |
− | |||
上一节:[[扩展模型]] | 上一节:[[扩展模型]] | ||
下一节:[[修改现有字段]] | 下一节:[[修改现有字段]] |
2018年3月2日 (五) 07:49的最新版本
我们将添加几个字段到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属性。
上一节:扩展模型 下一节:修改现有字段