iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
Odoo

Odoo 16 入門介紹系列 第 23

使用原生SQL語法

  • 分享至 

  • xImage
  •  

○ RAW SQL
通常我們想要在odoo中使用SQL語法時,都在model當中使用以定義方法的方式:

    def raw_sql(self):
        query = """
            SELECT
                id, name, author
	        FROM
                my_library;
        """
        self.env.cr.execute(query)
        print('self.env.cr.fetchall:', self.env.cr.fetchall())

我們有三種取值的方式self.env.cr.fetchall() self.env.cr.fetchone() self.env.cr.dictfetchall()

○ SQL view

當報表的格式比較特殊的時候,我們就會使用他:

@api.model_cr
    def init(self):
        tools.drop_view_if_exists(self.env.cr, self._table)
        query = """
        (
            SELECT
                min(library.id) as id,
                create_uid,
                avg(input_number) AS average_input_number
            FROM
                my_library AS demo
            GROUP BY library.create_uid
        );
        """
        self.env.cr.execute(query)

※使用原生SQL時要特別注意,因為它是直接對DB做操作,並沒有ORM這層。

明天開始介紹 odoo 的 Security 。


上一篇
templates 格式
下一篇
Security
系列文
Odoo 16 入門介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言