iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0

通常我們在寫module的時候,會需要一些初始資料或是固定需要的資料,我們可以定義資料在創立Model的時候一併創立資料,就不需要一項一項新增或匯入,我們來寫一個範例。

XML

新增檔案 /data/res_student.xml

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
          <record id="student_gary" model="res.student">
            <field name="name">GaryWu</field>
            <field name="nickname">Gary</field>
            <field name="birthday">1991-07-30</field>
            <field name="gender">male</field>
            <field name="is_active">True</field>
          </record>
        
          <record id="student_flynn" model="res.student">
            <field name="name">FlynnSun</field>
            <field name="nickname">Flynn</field>
            <field name="birthday">1991-06-19</field>
            <field name="gender">male</field>
            <field name="is_active">False</field>
          </record>
    </data>
</odoo>

<data noupdate='1'> : 設成1的時候,當我們在安裝module時便會自動把這些資料帶入,

id :自定義id,不重複即可

model:關聯model,填入model name

field :填入model field name,並填入對應的值。

CSV

第二種是透過CSV增加,要注意的是檔名必須為model name.csv

data/res.student.csv

"id","name","nickname","gender",birthday","is_active"
student_peter,"Peter Chen","Peter","male","1999-09-09",True
student_westing,"Westing Ting","Westing","male","2000-01-01",False

依照慣例記得把檔案加入__manifest__.py中:

'data': [
        'data/res_student.xml'
        'data/res.student.csv'
		...
    ],

當我們安裝module的時候,就會匯入於model內:

https://ithelp.ithome.com.tw/upload/images/20211002/20130896IJbH2QcVS2.png
像是短期內不容易變動的資料,如學校、地名...等等,我們就可以給Odoo初始資料,這樣一來安裝Odoo的時候,就可以輕易地給使用者引用或是上手。

同樣的寫法還有Demo Data,不過在寫Demo data要注意的是,必須把Demo data的選項打勾,這樣安裝的時候才會匯入並且__manifest__.py內要寫在demo裡而不是data裡。


上一篇
Day16 Let's ODOO: Report
下一篇
Day18 Let's ODOO: Paper Format
系列文
Let's ODOO 開發與應用30天挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言