前端常用视图标签:
学习了一段时间odoo,从中学习到了哪些标签是比较重要的,以及经常使用到的便签属性。
field标签
包括常用的属性有 name 、string、placeholder、widget、domain、attrs、options等
1.name属性
name属性值是model,关联的是模型名称,表示该视图关联的模型,对应到数据库就是数据库中的某张表,模型中放的字段就是对应到数据库表中的字段。name属性值为name表示页面的名称;“arch”表示视图布局的描述,采用的是xml来展现视图
该字段中的属性值关联的是模型中的字段,体现在页面中就是需要填写的表单内容
2.string 属性
该属性在标签中的作用是在页面展示字段意思
3.placeholder属性
在输入框中有个提示作用,提示需要在输入框中写入什么内容
4.widget属性
widget是一种组件,它的属性值提供了多种不同方式的输入,比如说“selection”就是以下拉框的方式向输入框中输入;
“radio”就是以单元的形式输入
“date”就是以日期形式输入
还有一些其他属性值
widget="statusbar" 头部状态条标签
widget="email" 电子邮件地址标签
widget="mail_followers" 关注者标签
widget="mail_thread" 消息标签
widget="progressbar" 进度条,按百分比标签
widget="one2many_list" 一对多列表标签
widget="many2many_tags" 多对多显示标签
widget="url" 网站链接标签
widget='image' 图片标签
widget="many2many_kanban" 看版标签
widget="handler" 触发标签
widget="char_domain" 字符域标签
widget="monetary" 价格(和精度位数相关)标签
widget="float_time" 单精度时间标签
widget="html" html相关标签
widget="pad" pad显示相关标签
widget="monetary" 金额标签
widget='text' 文本标签
widget="sparkline_bar" 燃尽标签
widget="checkbox" 复选框标签
widget="reference" 关联标签
5.domain属性
domain表达式:简单的格式:[('字段名','操作符',值)],比如说domain="[('paymentmodeid','!=','0000')]",就例子来说,这个表达式的意思是字段‘paymentmodeid’不能取‘0000’,在页面中就不会显示‘0000’对应的数据,所以domain属性是起到筛选作用。
6.attrs属性
attrs中的“required”属性作用于是否必填,格式:[('字段名','操作符',值)],表示该字段是必填字段;还有其他的参数,比如attrs属性如隐藏 attrs="{'invisible': [('state', '!=', 'draft')]}" 或者只读 attrs="{'readonly': [('state','=', 'done')]}"
7.options属性
用于指定widget字段配置的json对象。这与该字段使用什么widget来显示有关,odoo原生的字段类型都有对应的默认widget来负责显示,widget中封装了一些行为。
group标签
odoo 默认在页面上使用两排并列的方式,我们可以更改col的值来指定并排字段的数量
<group col="4" string="Access Rights">
<field name="perm_read"/>
<field name="perm_write"/>
<field name="perm_create"/>
<field name="perm_unlink"/>
</group>
form标签
form标签是用来创建表单的,它提供了一些高级结构(group等),其中可以加入点击交互的元素,可以让结构更加完善
button标签
name属性是在button标签中
name属性后面的内容即“save_to_pipeline_dcn”,关联的是一个方法,方法名为“save_to_pipeline_dcn()”,方法是写在.py类文件中,如果能够关联上就说明改按钮能够成功调用这个方法。
常用字段属性
字段还有一些其它属性供我们定义其行为。以下是常用的属性,通常都作为关键字参数:
- string是字段的默认标签,在用户界面中使用。除Selection和关联字段外,它都是第一个位置参数,所以大多数情况下它用作关键字参数。如未传入,将由字段名自动生成。
- default设置字段默认值。可以是具体值(如 active字段中的default=True),或是可调用引用,有名函数或匿名函数均可。
- help提供 UI 中鼠标悬停字段向用户显示的提示文本。
- readonly=True会使用户界面中的字段默认不可编辑。在 API 层面并没有强制,模型方法中的代码仍然可以向其写入。仅针对用户界面设置。
- required=True使得用户界面中字段默认必填。这通过在数据库层面为列添加NOT NULL 约束来实现。
- index=True为字段添加数据库索引,让搜索更快速,但同时也会部分降低写操作速度。
- copy=False让字段在使用 ORM copy()方法复制字段时忽略该字段。除 to-many 关联字段外,其它字段值默认会被复制。
- groups可限制字段仅对一些组可访问并可见。值为逗号分隔的安全组XML ID列表,如groups=’base.group_user,base.group_system’。
- states传入依赖 state字段值的 UI 属性的字典映射值。可用属性有readonly, required和invisible,例如states={‘done’:[(‘readonly’,True)]}。
注意states 字段等价于视图中的 attrs 属性。同时注意视图也支持 states 属性,但用途不同,传入逗号分隔的状态列表来控制元素什么时候可见。
工具推荐:安装PyCharm Odoo插件可以快速从属性值跳转到关联字段,按住Ctrl+单机鼠标左键即可跳转。安装方法File-->Settings-->Plugins搜索PyCharm Odoo安装即可。