第三節 ODOO開發教程之基本欄位屬性
阿新 • • 發佈:2021-02-04
技術標籤:odooodoo教程python資料庫postgresqllinux其他
點選跳轉進入免費課程(課程持續更新中…)
課件文件地址:點選跳轉
課程環境地址:點選跳轉 賬密:testuser
gitee程式碼地址:點選跳轉(分支learning_odoo12)
微信公眾號二維碼:
1 自己定義一個form檢視
<record id="epidemic_record_form_view" model="ir.ui.view">
<field name="name">疫情記錄</ field>
<field name="model">epidemic.record</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group>
< field name="name" string="姓名" required="1"/>
<field name="is_ill" string="是否確診"/>
<field name="within_or_abroad" string="境內/境外" required="1"/>
< field name="begin_lsolation_date" string="起始隔離日期" attrs="{'required': [('is_ill', '=', False)], 'invisible': [('is_ill', '=', True)]}"/>
<field name="lsolation_mode" string="隔離方式" attrs="{'required': [('is_ill', '=', False)], 'invisible': [('is_ill', '=', True)]}"/>
<field name="ill_type" string="感染方式" attrs="{'required': [('is_ill', '=', True)], 'invisible': [('is_ill', '=', False)]}"/>
<field name="date" string="確診日期" attrs="{'required': [('is_ill', '=', True)], 'invisible': [('is_ill', '=', False)]}"/>
</group>
<group>
<field name="state" string="省" required="1"/>
<field name="city" string="市" required="1"/>
<field name="county" string="區/縣"/>
<field name="street" string="具體地址" required="1"/>
<field name="create_user_id" string="填報人" readonly="1"/>
</group>
</group>
<notebook>
<page string="說明">
<field name="note" placeholder="其他資訊"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
2 search檢視定義,預置快捷搜尋、快捷篩選、快捷分組
<record id="epidemic_record_search_view" model="ir.ui.view">
<field name='name'>疫情記錄</field>
<field name="model">epidemic.record</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="state"/>
<filter string="已確診" name="is_ill" domain="[('is_ill', '=', True)]"/>
<filter string="未確診" name="is_ill" domain="[('is_ill', '=', False)]"/>
<!-- <filter string="Confirmed Orders" name="confirmed" domain="[('state', 'in', ['sale', 'done'])]"/>-->
<group expand="1">
<filter string="是否確診" name="is_ill" context="{'group_by': 'is_ill'}"/>
<filter string="填報人" name="create_user_id" context="{'group_by': 'create_user_id'}"/>
</group>
</search>
</field>
</record>
增加快捷搜尋使用field標籤
增加快捷篩選使用 filter標籤,搭配domain屬性
增加快捷分組使用filter標籤,搭配context使用
3 Boolean型別欄位定義
fields.Boolead()
4 Many2one欄位型別使用
user_id = fields.Many2one(‘res.users’),引數為目標模型名稱
5 Text欄位型別使用
note = fields.Text(), 文字型別欄位
6 欄位基本屬性readonly,required,invisible,attrs
readonly 只讀
required 必填
invisible 隱藏
attrs根據條件動態設定欄位屬性,attrs=’{‘invisible’: [(‘is_ill’, ‘=’, True)], ‘required’: [(‘is_ill’, ‘=’, False)]}’
7 欄位預設值
default屬性可以是固定的值,也可以是哦一個函式(根據需求以及欄位型別)
- 直接設定預設值
default=‘value’ - 值為一個方法
default=_default_fields_value
def _default_fields_value(self)
return value
create_user_id = fields.Many2one(‘res.users’, string=‘建立人’, default=lambda: self, self.env.uid)