3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)
目錄
1.什么是視圖
2.視圖的聲明方式
3.tree視圖
4.form視圖
5.search視圖
6.優(yōu)先級(jí)
1.什么是視圖
????????在Odoo中,視圖(view)定義了模型記錄的顯示方式。 每種類型的視圖代表一種可視化模式(如列表、表單、看板、日歷等)。?一個(gè)模型可以定義多種類型的視圖,同一類型的視圖也可以定義多個(gè),Odoo通過優(yōu)先級(jí)或者指定視圖ID的方式來進(jìn)行選擇匹配。Odoo中的視圖也可以利用繼承的方式來對(duì)原有的視圖進(jìn)行二次開發(fā)修改。
????????視圖用來向用戶展示模型中的數(shù)據(jù),依賴于模型而存在,決定了相關(guān)頁面數(shù)據(jù)的展現(xiàn)方式,常見的的視圖包括:tree、form、search、kanban、graph等,企業(yè)版支持更多的視圖形式,如:gantt、 dashboard等
2.視圖的聲明方式
Odoo中的視圖定義是通過XML格式來定義,在安裝模塊時(shí),這部分定義的XML會(huì)定入模型ir.ui.view中,一個(gè)視圖定義是該模型的一筆數(shù)據(jù)記錄,通用的格式為
<odoo><record model="ir.ui.view" id="view_id"><field name="name">視圖名稱</field><field name="model">視圖綁定的模型</field><!-- eval代表模型的優(yōu)先級(jí),如果有相同類型的視圖,會(huì)使用優(yōu)先級(jí)高的 --><field name="priority" eval="16"></field><!-- arch 的類型必須指定為xml,內(nèi)部嵌套具體的視圖 --><field name="arch" type="xml"><!-- view content: <form>, <tree>, <graph>, ... --></field></record> </odoo> # ir.ui.view 代表數(shù)據(jù)庫中表對(duì)應(yīng)的視圖的模型-
和action的聲明方式比較類似,固定的,使用record標(biāo)簽包裹起來,
-
視圖的聲明的model是ir.ui.view
-
這里定義的時(shí)候注意view_id不要包括符號(hào)點(diǎn)(.),否則Odoo會(huì)將點(diǎn)號(hào)前面的部分當(dāng)成是模塊名稱
-
視圖需要綁定模型,如上圖的第二個(gè)field,綁定的模型類如:meet.meet_room
即:應(yīng)用名稱.模型類名稱 -
name="priority", 如果存在多個(gè)視圖,可以設(shè)定優(yōu)先級(jí),看具體哪個(gè)視圖起作用
-
?name="arch", 在這里面就可以寫具體的視圖了,tree視圖、form視圖等等,所有不同視圖的定義XML內(nèi)容放在arch字段里面。
3.tree視圖
樹視圖(也稱為列表視圖)以表格形式顯示記錄。根元素是<tree>。 最簡(jiǎn)單的樹形視圖只列出要顯示的所有字段(每個(gè)字段作為列)
<record model="ir.ui.view" id="testroom_list_view"><field name="name">TestRoomList</field><field name="model">test.test_room</field><field name="arch" type="xml"><tree><field name="name" string="科目名稱"/><field name="seat_num"/></tree></field> </record>- tree標(biāo)簽下,就可以使用模型類里面的字段了,設(shè)置幾個(gè)field,應(yīng)用就顯示幾個(gè)
- name="模型類的字段名稱"
- string代表可以修改他們顯示的名稱,即列名,實(shí)際上是優(yōu)先級(jí)高于模型類的字段名
例如,如下的tree中加入了兩個(gè)模型類的字段就會(huì)顯示出來
?
4.form視圖
????????表單用于創(chuàng)建和編輯單個(gè)記錄。根元素是<form>。 它們由高級(jí)結(jié)構(gòu)元素(group、notebook)和交互元素(button、fields)組成:
<record model="ir.ui.view" id="testroom_form_view"><field name="name">testroom.form</field><field name="model">test.test_room</field><field name="priority" eval="10"></field><field name="arch" type="xml"><form string="TestRoom Form"><group><field name="name" string="名稱"/><field name="seat_num"/></group></form></field> </record>- 也是在name="arch"的field的標(biāo)簽下,進(jìn)行編寫
- 是一種向下排列的樣式,也就是默認(rèn)數(shù)模
- group就是讓字段名,也就是列名顯示出來,string的用法同上
- group默認(rèn)是豎著排列,如果想要橫向拍了列,所以可以這樣寫,col="2",是兩列的意思 <record model="ir.ui.view" id="testroom_form_view"><field name="name">testroom.form</field><field name="model">test.test_room</field><field name="priority" eval="10"></field><field name="arch" type="xml"><form string="TestRoom Form"><group col="2"><group><field name="name" string="名稱"/></group><group><field name="seat_num"/></group></group></form></field>
</record>
注意是,最外層也是group,里層也是group
- ?可以加 header標(biāo)簽,顯示的內(nèi)容能高點(diǎn),一般寫button等元素
?
- 里面會(huì)有header標(biāo)簽,里面一般是寫一些button之類的元素
- form的主體部分sheet,
- group也可以自己定義string
- separator是分組的一個(gè)標(biāo)題,我們可以自己定義
- notebook是標(biāo)簽欄,notebook里面需要定義page,一個(gè)page就是一個(gè)標(biāo)簽
- 比較靈活,也可以把標(biāo)簽放到notebook里面
- 如果不想讓一個(gè)字段修改,但可以顯示可以使用readonly='1'屬性
5.search視圖
搜索視圖自定義與列表視圖(以及其他聚合視圖)關(guān)聯(lián)的搜索字段。根元素是<search>,它們由定義可以搜索哪些字段的字段組成
search可以控制頁面搜索框的搜索內(nèi)容,當(dāng)只有沒有定義search時(shí),默認(rèn)搜索模型的name字段
<record model="ir.ui.view" id="testroom_search_view"><field name="name">testroom.search</field><field name="model">test.test_room</field><field name="arch" type="xml"><search><field name="name"/><field name="seat_num"/></search></field> </record>-
在odoo中搜索是包含的搜索方式
-
對(duì)數(shù)字是比較精確的,等于的方式
-
如果你開發(fā)的模型沒有定義搜索視圖,則Odoo會(huì)自動(dòng)生成僅允許在名稱字段上搜索的視圖。
然后看運(yùn)行結(jié)果,搜索時(shí)候,就不僅僅能搜名稱了 ,座位數(shù)也可以搜索了
6.優(yōu)先級(jí)
<field name="priority" eval="10"></field>
- 屬性值的值越小,優(yōu)先級(jí)越高
- 如果有id為一樣的視圖,后面的視圖會(huì)把前面的視圖覆蓋掉,所以有多個(gè)視圖時(shí)候,要保證id的值要不同。
B站up主主頁?
單三er的個(gè)人空間_嗶哩嗶哩_Bilibili單三er,野生odoo愛好者;單三er的主頁、動(dòng)態(tài)、視頻、專欄、頻道、收藏、訂閱等。嗶哩嗶哩Bilibili,你感興趣的視頻都在B站。https://space.bilibili.com/419877109
總結(jié)
以上是生活随笔為你收集整理的3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pandas打印所有行和列(显示所有的行
- 下一篇: 4.odoo13的学习(odoo中的xm