1. 程式人生 > >odoo 新API裝飾器中one、model、multi的區別

odoo 新API裝飾器中one、model、multi的區別

在閱讀本文章前,如果對one、model、multi裝飾類不清楚的同學,可以參考本人前幾篇文章。

1.one裝飾器詳解

odoo新API中定義方式:

date=fields.Date(string="date",compute="_get_date")

@api.one
def _get_date(self):
    self.date=fields.Date.today()
    

其實說的易懂些,等同於舊API的function 型別的簡化版,但是需要特別注意到是one裝飾類無返回值。

2. multi裝飾類詳解

odoo新API中定義方式:

1.本人一般將multi裝飾類用於tree試圖模式的報表中,如下圖例項:

@api.multi
def action_done(self):
    return {
                'name': _(u'科目'),
                'view_type': 'form',
                "view_mode": 'tree,form',
                'res_model': 'account.account',
                'type': 'ir.actions.act_window',
                'domain': [('id', 'in', return_list)],
                'views': [(tree_id, 'tree'), (form_id, 'form')],
                'view_id': [tree_id],
            }
2.multi使用可以參考one裝飾類,不過multi類有返回值。

3.model裝飾類,該裝飾類一般用於定義定時任務的方法中

@api.model
def action_done(self):
     .......
     .......
類似於舊API:
def action_done(self,cr,uid,context=None):
    pass
通過例項,可以看出model裝飾類,是沒有ids傳入的,但是他可以有返回值

總結:

1.其實通過上面的例項不難看出,model與multi可以有返回值,而one是沒有返回值的,如果用one裝飾器,即使寫了return,也是沒有作用的,雖然不會報錯,但是如果不知道原因的瞎折騰也是比較折磨人的

2.還有一點區別的是multi與one裝飾類是有ids傳入的,而model沒有ids傳入。

相關推薦

odoo API裝飾onemodelmulti區別

在閱讀本文章前,如果對one、model、multi裝飾類不清楚的同學,可以參考本人前幾篇文章。 1.one裝飾器詳解 odoo新API中定義方式: date=fields.Date(string

Odoo的@api.裝飾

nod chan try nbsp 常用 for 指定 約束 .html 轉載請註明原文地址:https://www.cnblogs.com/cnodoo/p/9281437.html Odoo自帶的api裝飾器主要有:model,multi,one,constrai

裝飾使用args

name 匹配 code imp 使用 logs 沒有 typeerror pri 1 import time 2 3 def timer(func): 4 #def deco(): #part1 5 #def deco(arg1):

python的幾個高階問題詳解(__init__,裝飾執行步驟,@staticmethod和@classmethod區別,單例模式,魔法方法,object繼承與不繼承區別

第一個問題,init 在定義一個類時,什麼時候用__init__函式,什麼時候不用,用不用有什麼區別? 首先__init__是為了初始化用的,但是初始化的時候不一定要用這個,直接定義也是可以的,比如 class A(object): test_a = '123' 而我們用__

python裝飾@wraps作用--修復被裝飾後的函式名等屬性的改變

Python裝飾器(decorator)在實現的時候,被裝飾後的函式其實已經是另外一個函數了(函式名等函式屬性會發生改變),為了不影響,Python的functools包中提供了一個叫wraps的decorator來消除這樣的副作用。寫一個decorator的時候,最好在實現之前加上functools的wra

spring框架ModelAndViewModelModelMap區別

實現類 java類 lan esp 測試 public googl user ram 轉載來源:http://www.cnblogs.com/google4y/p/3421017.html 註意:如果方法聲明了註解@ResponseBody ,則會直接將返回值輸出到頁面

css選擇a與a:link的區別

css選擇器中a:link是選擇尚未點選的連結,a是選擇連結,在一個連結未點選的時候好像可以同時被這兩個選擇器選擇。 但是a與a:link選擇器是有區別的,a選擇器是選擇所有連結,不管是否有效,a:link選擇器是選擇有效的連結。 例:<a href="#">點

C#的三層架構+工廠模式BLLDALIDALMODELDBUtilityDALFactory層級

三層架構,我們一般說的三層架構通常指的是: 1、表現層(UI):就是展現給使用者的介面,無論是網站前臺還是應用程式介面; 2、業務邏輯層(BLL):針對具體問題的邏輯操作; 3、資料訪問層(DAL):對資料進行操作。其他的層級基本都是在這三層之上的補充。

javawebactionservicemodeldao層如何區分

首先這是現在最基本的分層方式,結合了SSH架構。modle層就是對應的資料庫表的實體類。Dao層是使用了Hibernate連線資料庫、操作資料庫(增刪改查)。Service層:引用對應的Dao資料庫操作,在這裡可以編寫自己需要的程式碼(比如簡單的判斷)。Action層:引用

使用Mybatis-Generator自動生成DaoModelMapping相關文件

select let 屬於 url img jdb uid enables 粘貼 Mybatis屬於半自動ORM,在使用這個框架中,工作量最大的就是書寫Mapping的映射文件,由於手動書寫很容易出錯,我們可以利用Mybatis-Generator來幫我們自動生成文件。

使用Mybatis-Generator自動生成DaoModelMapping相關文件(轉)

rop root github mini -c back fig override creat https://github.com/astarring/mybatis-generator-gui 帶界面版:需要jdk 1.8以上 出處:http:

使用 mybatis-Generator 自動生成DAOModelMapping相關檔案

1、Maven專案 2、配置generatorConfig.xml檔案 3、在pom.xml中配置外掛     2、generatorConfig.xml檔案資訊 <?xml version="1.0" encoding="UTF-8"?> <!DO

MapModelModelMapModelAndView區別(未完成)

      (1)Spring中Model、ModelMap、ModelAndView理解和具體使用總結 (2)Model、ModelMap和ModelAndView的使用詳解 (3)Spring MVC 向頁面傳值-Map、Mode

Mybatis-Generator自動生成DaoModelMapping檔案

Mybatis屬於半自動ORM,在使用這個框架中,工作量最大的就是書寫Mapping的對映檔案,由於手動書寫很容易出錯,我們可以利用Mybatis-Generator來幫我們自動生成檔案。 1、相關檔案 由於我使用的是Mysql資料庫,這裡需要再準備一個連線mys

使用Mybatis-Generator自動生成DaoModelMapping相關檔案

1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration

【提供原始碼下載】使用Mybatis-Generator自動生成DaoModelMapping相關檔案

其實這個沒什麼,但是能大大加快我們的開發速度。 只需要把一個配置檔案配置好就行, <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//my

Intel處理器FamilyModelStepping等的學習

本文主要介紹在Linux系統中檢視本機CPU資訊方法,接著針對intel的x86處理器標識進行概括性描述,包括CPU ID、vendor、Family、Model、Stepping等。這些資訊主要來自網路搜尋所得,同時參考Intel IA32架構軟體開發手冊第2卷、第3捲進行修正完善,參見文後附帶地址以便了解

Spring boot 自動生成mybatis的daomodel和mapper層

1、pom.xml新增內容,最下邊新增plugin <build> <pluginManagement> <plugins> <plugin> <groupId>org.springfr

使用Mybatis-Generator自動生成DaoModelMapping相關檔案(轉)

下載地址: https://github.com/zouzg/mybatis-generator-gui/releases 使用說明: https://github.com/zouzg/mybatis-generator-gui 下載地址: https://git

搭建:使用Mybatis-Generator自動生成DaoModelMapping相關檔案

使用Mybatis-Generator自動生成Dao、Model、Mapping相關檔案一、在pom.xml中配置<build><plugins><plugin><groupId>org.mybatis.generator<