Odoo Scaffold 利用脚手架 - Models

Odoo的ORM模型 在定义模型时常用的三个模块:

models

     包含 Model 基础类,用于定义 ORM 模型.

fields

      包含模型定义时使用的基础字段,例如 fields.Char、fields.Integer 和 fields.Boolean 等等

api

    包含了数据库环境 Environment 类和一些常用的模型函数装饰器例如 api.multi、api.one 和 api.model 等等

 

所以需要现在文件头部引入这三个模: from odoo import models, fields, api        然后开始定义第一个模型。

 

# -*- coding: utf-8 -*-

from odoo import models, fields, api

# class todo(models.Model):
#     _name = 'todo.todo'
#     _description = 'Todo List'

#     name = fields.Char(string='Name', required=True, default=0)
#     value = fields.Integer()
#     value2 = fields.Float(compute="_value_pc", store=True)
#     description = fields.Text()
#
#     @api.depends('value')
#     def _value_pc(self):
#         self.value2 = float(self.value) / 100

模型类的类属性定义了_name是这个模型类的名称. 

定义 _name 是要遵守一个不成文的规定,格式一般为 {addon_name}.{model_name} 其中 addon_name 为你的应用或模块的名字,model_name 为模型的名字,例如: project 模块中的 Project 模型的 _name 为 project.project,hr 模块中 LeaveReport 则为 hr.leave.report,以上均参考至官方应用中的模型.

 

_description属性定义了这个模型类的描述.

 

模型新建了一个名字为todo.todo的表格.

 

name = fields.Char(string='Name', required=True, default=0)   相当于在todo.todo这个表格中创建了一个"名字为name"类型为Char的字段.   是必须的.  默认值为0.  注意默认值只有在ORM环境下有效的.  单独吸入sql是无效的.

 

 

 

定义好模型后我们需要在 models/__init__.py 引入这个类或这个类所在的 py 文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值