写个odoo视图代码,视图里边包含3个字段,name,code,description
时间: 2023-03-14 18:24:11 浏览: 141
class MyView(osv.Model):
_name = "my.view"
_description = "My View"
_columns = {
'name': fields.char('Name', size=50, required=True),
'code': fields.char('Code', size=50, required=True),
'description': fields.text('Description', size=1000)
}
相关问题
odoo 16 tree视图数字字段靠左
在Odoo 16中,树形视图(Tree View)默认显示字段按照字母顺序排列。如果你有一个包含数字字段并且希望它们靠左显示,你可以通过自定义模板或者修改模型的数据布局来实现。
1. **自定义模板**:
如果你的需求相对固定,可以创建一个自定义的模板,针对这个数字字段添加CSS样式,例如设置`text-align: left;`。在模板文件(`.xml`)里找到对应字段的 `<field>` 标签,并添加 `t-field` 的 CSS 类名,然后在主题的CSS文件中编写规则。
2. **模块开发**:
如果需要全局调整,可以在模块的XML文件中,比如 `view.xml` 文件中,对整个树视图添加`<xpath>`选择器并应用CSS样式。例如:
```xml
<xpath expr="//tree[@model='your.model']" position="attributes">
<attribute name="cell_attributes">{
'value': '_custom_align_left',
'if': "record['your_number_field'].isdigit()",
}</attribute>
</xpath>
<template id="_custom_align_left" inherit_id="web.field.integer">
<xpath expr="." position="inside">
<span t-att-style="'text-align: left;'"></span>
</xpath>
</template>
```
请注意,这需要你有一定的HTML和CSS基础以及Odoo的XML模板知识。
Odoo14有哪些视图,描述它们的作用 Odoo14假设有- -个model Class ma(models.model): _name = 'pss.ma' name = fields.char(stirng= title') dat = fields.datetime() 需要查询本月的全部,如何写? 需要查询本月的全部加上标题是N的全部,如何写? 在上述基础上输出json格式,如何写? Odoo14如何继承model并改写原有的字段?如何新增字段?
A:Odoo14有以下几种视图:
1. 列表视图(List view):展示数据表格,每一行对应一个记录。
2. 表单视图(Form view):针对每个记录给出一个表单,可进行编辑操作。
3. 图表视图(Graph view):将数据以图表方式呈现,便于数据分析。
4. 栅格视图(Kanban view):将记录以卡片的形式呈现,方便查看。
5. 日历视图(Calendar view):将记录以日历的形式呈现,展示时间性数据。
以上视图的作用和应用场景在不同的业务流程中有所差异。
针对给出的model Class ma(models.model),如果需要查询本月的全部,可以使用Odoo提供的日期范围过滤器,在视图中使用以下过滤器:
<filter name="this_month" string="This Month"
domain="[('dat', '>=', datetime.date.today().replace(day=1).strftime('%Y-%m-%d')), ('dat', '<=', datetime.date.today().replace(day=calendar.monthrange(datetime.date.today().year,datetime.date.today().month)[1]).strftime('%Y-%m-%d'))]"/>
如果需要查询本月的全部加上标题是N的全部,可以给过滤器加上标题的过滤条件,如下所示:
<filter name="this_month_with_title" string="This Month with title N"
domain="[('dat', '>=', datetime.date.today().replace(day=1).strftime('%Y-%m-%d')), ('dat', '<=', datetime.date.today().
replace(day=calendar.monthrange(datetime.date.today().year, datetime.date.today().month)[1]).
strftime('%Y-%m-%d')), ('name', '=', 'N')]"/>
针对上述基础上输出json格式,可以使用Odoo提供的JSON API进行操作,具体代码如下:
import xmlrpclib
import json
username = 'admin'
pwd = 'password'
dbname = 'database'
# DB信息
sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
uid = sock_common.login(dbname, username, pwd)
# 访问model
sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')
search_params = [('dat', '>=', datetime.date.today().replace(day=1).strftime('%Y-%m-%d')),
('dat', '<=', datetime.date.today().
replace(day=calendar.monthrange(datetime.date.today().year, datetime.date.today().month)[1]).
strftime('%Y-%m-%d')), ('name', '=', 'N')]
result = sock.execute(dbname, uid, pwd, 'pss.ma', 'search_read', search_params, ['name', 'dat'])
print json.dumps(result)
针对Odoo14如何继承model并改写原有的字段和新增字段,可以在新的model中继承原有的model,并调用各种Odoo API进行开发操作,具体代码如下:
class MaInherited(models.Model):
_inherit = 'pss.ma'
# 改写字段
date = fields.Date(string='Date', default=lambda self: datetime.date.today().strftime('%Y-%m-%d'))
# 新增字段
desc = fields.Char(string='Description')
# 自定义方法
def do_something(self):
pass
继承后可以对原有的字段进行重命名,修改类型、默认值以及添加新的约束条件。新增字段时需要考虑业务需求和数据类型,通常需要进行数据迁移或初始化。在model中还可以定义各种自定义方法,以便在各种业务场景中进行调用。
阅读全文