首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Odoo:如何在Transient.Model中创建许多记录?

在Odoo中,可以使用Transient Model来创建临时记录。Transient Model是一种特殊类型的模型,它不会在数据库中创建表,而是用于临时存储数据。

要在Transient Model中创建多条记录,可以按照以下步骤进行操作:

  1. 创建Transient Model:首先,需要创建一个继承自TransientModel的新模型。可以在模块的models.py文件中定义该模型。例如:
代码语言:python
代码运行次数:0
复制
from odoo import models, fields

class MyTransientModel(models.TransientModel):
    _name = 'my.transient.model'
    _description = 'My Transient Model'

    name = fields.Char(string='Name')
    # 添加其他需要的字段
  1. 创建临时记录:在需要创建多条记录的地方,可以通过调用create()方法来创建临时记录。例如,在一个按钮的点击事件中创建多条记录:
代码语言:python
代码运行次数:0
复制
def create_records(self):
    MyTransientModel = self.env['my.transient.model']
    for i in range(5):
        record = MyTransientModel.create({'name': f'Record {i+1}'})
        # 可以在这里对记录进行其他操作,如设置其他字段的值
  1. 显示临时记录:可以通过在视图中添加一个临时模型的窗口来显示创建的临时记录。可以使用ir.actions.act_window来定义窗口。例如,在一个按钮的点击事件中打开临时模型的窗口:
代码语言:python
代码运行次数:0
复制
def open_transient_model(self):
    return {
        'name': 'My Transient Model',
        'type': 'ir.actions.act_window',
        'res_model': 'my.transient.model',
        'view_mode': 'tree,form',
        'target': 'new',
    }

以上是在Odoo中使用Transient Model创建多条记录的基本步骤。根据具体的业务需求,可以进一步扩展和定制Transient Model,并在视图中添加其他字段和功能。

关于Odoo的更多信息和详细介绍,可以参考腾讯云的Odoo产品页面:Odoo产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

odoo 开发入门教程系列-一些用户界面

这是因为,在odoo中加载CSV文件比加载XML文件更快。 odoo,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件记录来定义的。...我们Real Estate例子,希望将一个菜单连接到 estate.property model, 以便创建一个新记录。...然而,菜单总是遵循一种体系结构,实际上有三个层次的菜单: 根菜单,显示在App切换器Odoo社区版切换器是一个下拉菜单) 第一级菜单,显示在顶部栏 动作菜单 最容易的方式是在XML文件定义结构来创建菜单...Odoo许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复时,某些字段不能被拷贝 在我们的房产业务案例,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期和售价不能被拷贝...我们看到一些属性,required=True,会影响数据库的表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。

3K30
  • 在Ubuntu 16.04上安装Odoo 10

    PostgreSQL用户 切换到postgres用户: sudo su - postgres 为数据库用户设置一个强密码并将其记录在一个安全的位置,您将在以下部分需要它: createuser odoo...您选择的选项取决于您的特定需求: 要同时使用日志和单独的Odoo日志文件,请创建相应的目录: sudo mkdir /var/log/odoo 要仅使用journald用于日志记录,您不需要创建任何目录...对于正常安装,您可以跳过此行,并且此Odoo实例将默认连接到端口8069。 注意 配置日志部分中所述,在Ubuntu 16.04有很多Odoo日志记录选项。...在/lib/systemd/system/odoo-server.service创建一个新文件并添加以下内容: [Unit] Description=Odoo Open Source ERP and...请记住,journald将始终捕获主要的Odoo服务活动(服务启动,停止,重新启动,错误),使用单独的日志文件将仅排除日志“信息”消息,Web服务器消息,呈现引擎等。

    3.3K42

    在云端快速构建一个 ODOO 站点

    本文主要介绍如何在腾讯云的环境下,通过简单的步骤,快速搭建一个 ODOO 的站点。...准备工作 云+校园认证通过 扫码获取50元通用代金券 检查电脑上面是否有Terminal程序 实验架构 任务一:创建一台云主机并登录 任务目标: 购买并创建一台云主机,设置云主机管理员密码,通过客户端成功登陆云主机...注:管理员账号的初始密码在上面购买过程设置过,用户也可以重置密码,详见管理员账号密码重置。同时,用于登陆的公网IP可以在管理界面查询(如下图所示)。 4)....任务二:购买一个数据库实例,并初始化 任务目标:成功创建一个云数据库实例,初始化其root密码,验证从云服务器是否可以正常的连接数据库 创建数据库实例 数据库->云数据库CDB->PostgreSQL.../log/odoo.log logrotate = True log_handler = :INFO pidfile = /data/odoo/proc/odoo.pid 创建ODOO运行环境需要的目录

    9.9K30

    odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)

    创建计算的字段,请创建字段并将其属性compute设置为方法的名称。计算方法应为self的每个记录设置计算的字段的值。...依赖(Dependencies) 计算的字段的值通常取决于计算记录其他字段的值。ORM期望开发人员使用修饰符depends()指定计算方法上的依赖项。...提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时的奔溃 在表单和列表视图中添加字段,正如本章目标显示的第二个动画中的一样。...练习--为花园面积和朝向赋值 在estate.property模型创建 onchange 方法以便当勾选花园时,设置花园面积(10)和朝向(North),未勾选时,移除花园面积和朝向值。...永远不要使用onchange将业务逻辑添加到模型。这是一个非常糟糕的想法,因为在以编程方式创建记录时不会自动触发onchanges;它们仅在表单视图中触发。

    3.2K30

    odoo 权限管理学习总结

    那么在odoo如何区分用户类型以及如何做权限控制的呢?...字典创建记录,形如(0, 0, {'author': user_root.id, 'body': 'one'})。...(2, ID, values) 使用values字典的值更新id值=ID的现有记录 (2, ID) 删除id=ID这条记录(调用unlink方法,删除数据及整个主从数据链接关系) (3, ID) 删除主从数据的链接关系但是不删除这个记录...默认允许的记录规则:如果授予模型访问权限(Access Rights),并且没有规则适用于用户的操作和模型,则授予访问权限 记录规则保存在ir.rule模型表里,我们通过管理ir_rule表记录,即可控制记录的访问权限...--仅显示用户自己创建记录--> <field name="groups" eval="[(4, ref('group_estate_property_record_read'

    10.2K20

    odoo ORM API学习总结兼orm学习教程

    Odoo mode可通过继承一下类来创建Model: Model 用于常规数据库持久化模型 TransientModel 用于临时数据,存储在数据库,但每隔一段时间就会自动清空 AbstractModel...,所有用户都可以创建记录,并且只能访问他们创建记录。...odoo.fields.create_date 创建记录时存储创建时间,Datetime类型 odoo.fields.create_uid 存储记录创建人, Many2one to a res.users...odoo.fields.Char类型 odoo.fields.active 切换记录的全局可见性,如果active设置为False,则记录在大多数搜索和列表不可见。...提供三种不同的机制,以模块化方式扩展模型: 从现有模型创建新模型,向副本添加新信息,但保留原始模块 扩展其他模块定义的模型,替换以前的版本 将模型的一些字段委派给它包含的记录 经典继承 当同时使用

    13.5K10

    ODOO配置文件etcodoo.conf配置详解

    对于生产中托管多个数据库的服务器,特别是在使用网站时,必须设置dbfilter,否则许多功能将无法正常工作。...**的基本参数 Odoo通过端口5432通过UNIX套接字连接到本地postgres。...打包的安装程序将自动创建一个新用户(odoo),并将其设置为数据库用户。 数据库管理界面受管理密码设置保护。此设置只能使用配置文件进行设置,并在执行数据库更改之前进行简单检查。...这样做时,您需要将更多的http头转发给Odoo,并在Odoo配置激活代理模式,让Odoo读取这些头。... 8192   limit_time_cpu = 600   limit_time_real = 1200   max_cron_threads = 1   workers = 8   5.数据库日志记录配置

    7.3K31

    odoo 开发入门教程系列-模型之间的关系(Relations Between Models)

    模型之间的关系(Relations Between Models) 上一章介绍了为包含基本字段的模型创建自定义视图。然而,在任何真实的业务场景,我们都需要不止一个模型。此外,模型之间的链接是必要的。...可通过以下方式轻松的访问partner的数据: print(my_test_object.partner_id.name) 参见 foreign keys 练习1 添加房地产类型表 创建estate.property.type...它支持标准Python的集合操作,len()和iter(),以及recs1 | recs2等额外的集合操作。...comodel,必须在comodel定义Many2one 字段 练习 添加房地产报价表 创建 estate.property.offer 模型,并添加以下字段: Field Type Attributes...当我们通过one2many字段创建记录时,为了方便,会自动填充相应的many2one 添加odoo14\custom\estate\models\estate_property_offer.py #!

    4.5K40

    odoo 开发入门教程系列-模块交互

    模块交互 在上一章,我们使用继承来修改模块的行为。在我们的房地产场景,我们希望更进一步,能够为客户生成发票。...Odoo提供了一个开发票模块,因此直接从我们的房地产模块创建发票是很简单的,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序创建发票 一个具体示例: 记账凭证(Account...链接模块(Link Module) 此类使用案例的常见方法是创建“链接”模块。在我们的案例,该模块依赖estate 和account,包括房产的发票创建逻辑。...为此,我们需要在estate_account模块创建一个模型,继承estate.property模型。...如果重写生效,我们可以继续创建发票。不幸的是,没有一种简单的方法可以知道如何在Odoo创建任何给定的对象。大多数时候,有必要查看其模型,以找到所需的字段并提供适当的值。

    1.7K10

    odoo 开发入门教程系列-QWeb简史

    您可能已经熟悉现有的引擎,Jinja(Python)、ERB(Ruby) 或Twig(PHP)。Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。...你可能已经在Odoo见过 看板,其中的记录以卡片状结构显示。我们将为我们的房地产模块构建这样的视图。 一个具体的示例: 一个看板视图 参考: 本主题关联文档可以查看Kanban....目标: 本节结束时创建一个房产的看板视图 在我们的地产应用程序,我们希望添加一个看板视图来显示我们的房产。看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。...在本例,它用于将模板的name设置为kanban-box :oe_kanban_global_click让可点击,以打开记录...提示: 必须在ir.actions.act_window对应的view_mode添加 kanban 修改odoo14\custom\estate\views\estate_property_views.xml

    2.1K20

    ODOO优化层级关系查询效率的方法

    Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。 代码如下 在上面的代码。 使用字段来关联上层记录。...使用和字段来进行记录所属层级,当时看书的时候对这些代码不是很理解,只是知道这样做能够提高层级关系数据模型查询数据记录的效率。...(递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B的上级对象。那么存在这样的逻辑关系。...Odoo 应用 我们用Odoo11的product模块作为演示 在文件.看到产品目录(ProductCategory类.15行起)的代码 在Odoo11的演示数据,产品的目录结构一共有6个 我们查询下数据库的数据...要找Saleable下的所有子目录即可使用 作为条件 结论: 在Odoo的实际使用,发现使用parent存储特性的模块主要涉及account, product, stock_location.

    2.3K80

    odoo Actions学习总结

    环境 odoo-14.0.post20221212.tar Actions(动作) action定义系统响应用户操作的行为:登录、操作按钮、选择发票等… action可以存储在数据库,也可以作为字典直接返回...(否则创建一个条新记录) search_view_id (可选) (id, name) 对, id 为动作需要加载的指定搜索视图的数据库ID。...使用main而不是current以清除导航面包屑(实际发现,使用current会导致面导航面包屑不断重复,形如 顾客信息/导入记录/顾客信息/导入数据/...)。默认为new。...context (可选) 传递给视图的附加上下文 domain (可选) 隐式添加到所有视图搜索查询的过滤domain limit (可选) 默认情况下要在列表显示的记录数。...如果您计划为模型允许多个视图,优先使用ir.actions.cact_window.wiew而不是view_ids action。

    2.6K30

    odoo 开发入门教程系列-继承(Inheritance)

    在介绍特定的Odoo模块继承之前,让我们看看如何更改标准CRUD(创建、检索,更新或删除)方法的行为 Python继承(Python Inheritance) 目标: 不能删除状态不为New、Canceled...self可以是一个包含多条记录的结果集。...创建报价时,设置房产状态为‘Offer Received’,如果用户试图以低于已存在报价的金额创建报价时抛出错误。 提示: 可在vals获取property_id 字段,但是它是一个int型。...(委托)允许将模型的每个记录链接到父模型的记录,并提供对该父记录的字段的透明访问。...odoo,第一种机制最常用。在我们的例子,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。

    2.2K20

    odoo 开发入门教程系列-一个新应用

    列表记录详情页,第一个tab包含了房产的描述信息,比如:bedrooms, Living area, Garage,Garden 第二个tab页,列出了房产的报价。...Goal: 该小节的目标是让odoo识别我们的新模块,一个空壳。它将显示在Apps 创建模块的第一步:新建一个目录。...为了让开发更轻松,建议首先创建目录 /home/$USER/src/custom,然后在该目录添加待创建的新模块对应的目录(本例为 estate)。...odoo框架会确保depends配置的依赖模块在我们的模块被安装之前安装。 而且,如果这些模块的某个依赖被卸载,我们的模块及其它任何依赖它的模块都会被卸载。...服务: python odoo-bin --addons-path=custom,odoo/addons -r myodoo -w test123 -d odoo 验证 浏览器页面访问Apps, 点击搜索

    1.3K10

    在Ubuntu 16.04上安装Odoo 11堆栈

    在主节点和从节点上创建此用户。 切换到postgres用户并创建负责所有操作的数据库用户odoo。...replicauser:上一节创建的用户。 md5:使用客户端提供的MD5加密密码进行身份验证。 all:匹配服务器的所有数据库。...配置日志 本指南中的示例使用单独的文件来记录Odoo活动: sudo mkdir /var/log/odoo 安装Odoo 11 安装git: sudo apt install...xmlrpc_port:Odoo监听的端口。 创建一个Odoo服务 创建一个名为odoo-server的systemd单元,以允许您的应用程序作为服务运行。...在浏览器,您应该看到可用应用程序列表,表明数据库创建成功: 第一次创建数据库时,Odoo可能需要几分钟才能加载其所有附加组件。在此过程不要重新加载页面。

    8.9K30
    领券