odoo模型字段排序

在Odoo中定义一个模型(Model)通常涉及创建一个Python类,该类继承自models.Model。这个类定义了数据库表中的列(字段),以及它们的类型、属性和行为。除了字段定义,你还可以设置记录的默认排序方式。

以下是一个简单的Odoo模型(Model)定义示例,包含了排序(Ordering):

from odoo import models, fields

class MyModel(models.Model):
    _name = 'my.model'           # 模型的唯一标识名
    _description = 'My Model'    # 模型的友好描述名
    _order = 'name desc'         # 默认排序规则,此处为按'name'字段降序

    name = fields.Char('Name', required=True, index=True)   # 一个字符字段,必填,索引
    description = fields.Text('Description')                # 一个文本字段
    active = fields.Boolean('Active', default=True)         # 一个布尔字段,默认为True
    date_created = fields.Date('Creation Date', default=fields.Date.context_today)  # 日期字段,带默认值

参数解释:

  • _name: 字符串,定义了Odoo内部使用的模型名。这是模型的唯一标识符,通常用点号(.)分隔。
  • _description: 字符串,为模型提供了一个更易读的描述。这在Odoo UI中作为模型的名称显示。
  • _order: 字符串,指定了模型记录的默认排序。格式为'字段名 排序方式'。如果要按多个字段排序,可以使用逗号分隔,如'name desc, id asc'

字段定义:

  • fields.Char: 创建一个字符类型的字段。可接受参数如string(字段标签)和required(是否必填),index(是否为该字段创建数据库索引以提高查询性能)。
  • fields.Text: 创建一个文本类型的字段,适用于长文本。
  • fields.Boolean: 创建一个布尔类型的字段,常用于标记记录是否被激活或启用。
  • fields.Date: 创建一个日期类型的字段,default参数可以用于设置默认值,此示例中使用fields.Date.context_today表示默认使用当前日期。

以上代码中,每个字段的第一个参数是字段的标签,它在Odoo的视图(View)中显示为字段的名称。字段定义时可以包含更多参数来进一步定制字段的行为,例如readonly=True意味着字段值在视图中只读。

关于排序(_order):

  • _order: 这个模型属性用来指定当你查询模型记录时,默认的排序顺序。排序规则是一个字符串,包含了字段名和排序顺序(asc升序或desc降序),多个排序规则可以用逗号分隔开。

在上述代码示例中,当查询my.model模型的记录时,默认会按照name字段的降序来排序。如果你不定义_order,Odoo会默认使用记录的ID按升序排列。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值