1. 程式人生 > 其它 >第三節 ODOO開發教程之基本欄位屬性

第三節 ODOO開發教程之基本欄位屬性

技術標籤: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)

點選跳轉進入免費課程(課程持續更新中…)