第三节 ODOO开发教程之基本字段属性

点击跳转进入免费课程(课程持续更新中…)
课件文档地址:点击跳转
课程环境地址:点击跳转 账密:testuser
gitee代码地址:点击跳转(分支learning_odoo12)
微信公众号二维码:
第三节 ODOO开发教程之基本字段属性

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)

点击跳转进入免费课程(课程持续更新中…)

上一篇:java-由于用户看不到字符串而生成随机的“密钥”


下一篇:如何使用java识别空白/不可见的图像