【odoo】odoo字段常用属性详细介绍

常用属性

string

定义:字段的标签,用于在用户界面上显示字段的名称。

示例:

name = fields.Char(string='Name')

注意:属性对于用户友好性至关重要,因为它确定了用户在界面上看到的字段标签。


help

定义:字段的帮助文本,用于提供有关字段用途或输入格式的描述。

示例:

description = fields.Text(string='Description', help='Enter a brief description of the item')

注意:属性对于指导用户如何填写字段是非常有用的。


required

定义:指示字段是否是只读的,即用户不能在表单中编辑该字段的值。

示例:

name = fields.Char(string='Name', required=True)

注意:将 required 设置为 True 可以确保在保存记录时不会留空必填字段。


readonly

定义:指示字段是否是只读的,即用户不能在表单中编辑该字段的值。

示例:

date = fields.Date(string='Date', readonly=True)

注意:将 readonly 设置为 True 可以防止用户修改字段的值,通常在字段根据其他条件自动生成值时使用。


compute

定义:指定一个计算方法来动态计算字段的值。

示例:

total_price = fields.Float(string='Total Price', compute='_compute_total_price')

@api.depends('unit_price', 'quantity')
def _compute_total_price(self):
    for record in self:
        record.total_price = record.unit_price * record.quantity

注意:使用 compute 属性可以根据其他字段的值动态计算字段的值。在 @api.depends 装饰器中指定依赖字段。


inverse

定义:指定一个反向方法来处理字段的值更改。

示例:

def _inverse_total_price(self):
    for record in self:
        record.unit_price = record.total_price / record.quantity

total_price = fields.Float(string='Total Price', compute='_compute_total_price', inverse='_inverse_total_price')

注意:使用 inverse 属性可以在字段的值更改时更新其他相关字段的值。


定义:指定一个相关字段,用于获取其他模型中的值。

示例:

partner_name = fields.Char(string='Partner Name', related='partner_id.name')

注意:使用 related 属性可以从另一个模型中获取值,并将其显示在当前模型的字段中。


default

定义:指定字段的默认值。

示例:

is_active = fields.Boolean(string='Is Active', default=True)

注意:使用 default 属性可以在创建新记录时设置字段的默认值。


index

定义:指示字段是否应该被索引以提高数据库检索效率。

示例:

name = fields.Char(string='Name', index=True)

注意:将 index 设置为 True 可以加快对字段值的搜索操作。


copy

定义:指定字段是否应该在复制记录时复制其值。

示例:

name = fields.Char(string='Name', copy=True)

注意:默认情况下,字段的 copy 属性为 True,这意味着在复制记录时,字段的值也会被复制到新记录中。


translate

定义:指示字段的值是否应该被翻译成其他语言。

示例:

name = fields.Char(string='Name', translate=True)

注意:将 translate 属性设置为 True 可以使字段的值能够被翻译成其他语言。


size

定义:指定字段的最大长度。

示例:

name = fields.Char(string='Name', size=50)

注意:size 属性通常用于限制字符串字段的最大长度。


digits

定义:指定字段的精度和小数位数。

示例:

price = fields.Float(string='Price', digits=(10, 2))

注意:digits 属性通常用于限制浮点数字段的小数位数。


domain

定义:指定字段的域(范围),即允许的值。

示例:

partner_id = fields.Many2one('res.partner', string='Partner', domain="[('customer', '=', True)]")

注意:domain 属性通常用于在界面上限制可选值的范围。


selection

定义:指定一个选择列表,用户可以从中选择一个值。

示例:

status = fields.Selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done')], string='Status')

注意:selection 属性用于定义一个包含选项的列表,每个选项是一个元组,包含两个值(数据库中的值和显示的标签)。


comodel_name

定义:指定与当前模型关联的目标模型的名称。

示例:

order_lines = fields.One2many(comodel_name='sale.order.line', inverse_name='order_id', string='Order Lines')

注意:comodel_name 属性用于指定与当前模型关联的目标模型。


inverse_name

定义:指定在目标模型中反向引用当前模型的字段名称。

示例:

order_lines = fields.One2many(comodel_name='sale.order.line', inverse_name='order_id', string='Order Lines')

注意:inverse_name 属性用于指定在目标模型中反向引用当前模型的字段名称。


relation

定义:指定多对多关系中关联表的名称。

示例:

categories = fields.Many2many(comodel_name='product.category', relation='product_category_rel', column1='product_id', column2='category_id', string='Categories')

注意:relation 属性通常不需要手动设置,因为它通常会自动生成,但在某些情况下,你可能需要显式地指定它。


column1column2

定义:指定多对多关系中关联表的两个列的名称。

示例:

categories = fields.Many2many(comodel_name='product.category', relation='product_category_rel', column1='product_id', column2='category_id', string='Categories')

注意:如果你需要自定义多对多关系的关联表名称和列名称,可以使用 column1column2 属性来指定。


ondelete

定义:指定关联记录被删除时的行为。

示例:

user_id = fields.Many2one(comodel_name='res.users', string='User', ondelete='cascade')

注意:ondelete 属性用于定义关联记录被删除时的行为,常见的选项包括 cascadeset nullrestrict 等。


context

定义:指定与关联字段相关的上下文,默认情况下,这个上下文将传递给与字段关联的视图。

示例:

partner_id = fields.Many2one(comodel_name='res.partner', string='Partner', context={'default_customer': True})

注意:context 属性用于指定与关联字段相关的上下文,这可以影响与字段关联的视图中的行为。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值