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 文件

發佈了26 篇原創文章 · 獲贊 1 · 訪問量 3202
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章