odoo 基类 models.TransientModel 基本操作

在Odoo中,TransientModel用于创建临时记录,通常用于向用户收集信息,比如向导(Wizards)、配置向导等。TransientModel不会永久保存数据到数据库硬盘中,而是保存在数据库的临时表中,这些记录在数据库中仅保留一段有限的时间,通常在交易完成后不久会自动删除。

TransientModel的参数和特性

  • _name: 继承自Model,定义模型的技术名称。
  • _description: 继承自Model,定义模型的人类可读描述。
  • _transient: 设置为True,标记模型为临时模型。

TransientModel的字段类型

字段类型与常规模型(如Model)相同,包括:

  • Char: 短文本字符串。

  • Text: 长文本字符串。

  • Boolean: 布尔类型。

  • Integer: 整数。

  • Float: 浮点数。

  • Date: 日期。

  • Selection: 选择列表。
    等等。

  • TransientModel的方法
    和常规模型类似,但是在TransientModel中通常会看到以下特定的方法:

  • default_get: 初始化字段的默认值。

  • create: 创建新的临时记录。

  • write: 修改临时记录。

  • unlink: 删除临时记录。

代码示例

下面是一个创建一个简单的TransientModel的例子,在这个例子中,我们创造一个简单的向导来收集用户的反馈。

from odoo import models, fields, api

class FeedbackWizard(models.TransientModel):
    _name = 'feedback.wizard'
    _description = 'Feedback Wizard'

    name = fields.Char('Name')
    email = fields.Char('Email')
    feedback = fields.Text('Feedback')

    def action_submit_feedback(self):
        # 这里可以添加将反馈记录到数据库或发送邮件的逻辑
        # 举个例子,这里我们只是打印反馈
        print(f'Received feedback from {self.name}: {self.feedback}')

在此代码中,FeedbackWizard是一个TransientModel,它有三个字段:name、email和feedback。我们还定义了一个方法action_submit_feedback,当用户提交反馈时,这个方法可以被调用(通常是通过向导视图中的按钮)。

请注意,你可能需要在前端添加XML视图以实际使用此向导,并在后端添加更多的逻辑来处理提交的数据,比如保存到数据库中或者通过电子邮件发送反馈。这里的例子主要是为了演示TransientModel的定义和基本用法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值