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

如何在使用odoo外部接口创建记录时,将日志中的created by <user>改为OdooBot

在使用Odoo的外部接口创建记录时,如果你希望将日志中的“created by <user>”改为“OdooBot”,可以通过修改Odoo的源代码或使用自定义模块来实现。以下是详细的步骤和示例代码:

基础概念

在Odoo中,记录的创建者通常由当前登录的用户决定。日志中的“created by <user>”信息是通过Odoo的ORM(对象关系映射)机制自动记录的。

相关优势

  • 自动化:通过代码自动修改创建者信息,减少手动操作的错误。
  • 一致性:确保所有通过外部接口创建的记录都具有一致的创建者信息。

类型与应用场景

  • 外部接口:适用于通过API或其他外部方式创建记录的场景。
  • 自动化任务:适合在自动化脚本或定时任务中使用。

解决方法

方法一:修改源代码

  1. 定位相关代码: 找到Odoo中记录创建者信息的代码位置,通常在models/base/model.py或类似的文件中。
  2. 修改代码: 修改创建记录时的逻辑,将创建者设置为“OdooBot”。
代码语言:txt
复制
# 示例代码,假设在models/base/model.py中
from odoo import models, fields, api

class BaseModel(models.AbstractModel):
    _inherit = 'base.model'

    @api.model
    def create(self, vals):
        if not self.env.context.get('create_by_odoo_bot'):
            vals['create_uid'] = self.env.ref('base.user_odoo_bot').id
        return super(BaseModel, self).create(vals)

方法二:使用自定义模块

  1. 创建自定义模块: 创建一个新的Odoo模块,覆盖默认的创建逻辑。
代码语言:txt
复制
# my_module/models/my_model.py
from odoo import models, fields, api

class MyModel(models.Model):
    _inherit = 'my.model'

    @api.model
    def create(self, vals):
        if not self.env.context.get('create_by_odoo_bot'):
            vals['create_uid'] = self.env.ref('base.user_odoo_bot').id
        return super(MyModel, self).create(vals)
  1. 更新模块: 安装或更新自定义模块,确保覆盖生效。

应用场景示例

假设你有一个自动化脚本,通过Odoo的外部API创建销售订单。你可以使用上述方法确保所有通过该脚本创建的订单都显示为“OdooBot”创建。

注意事项

  • 权限管理:确保“OdooBot”用户具有创建记录所需的权限。
  • 测试:在生产环境中应用更改前,务必在测试环境中充分测试。

通过上述方法,你可以有效地将日志中的“created by <user>”改为“OdooBot”,从而满足特定的业务需求或自动化流程的要求。

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

相关·内容

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

否则抛出一个错误 访问日志字段 如果启用_log_access,自动设置并更新这些字段。当未用到这些字段时,以禁用它以阻止创建或更新表中这些字段。...在出现字段的表单视图中,当修改某个给定字段时,将调用该方法。在包含表单中存在的值的伪记录上调用该方法。该记录上的字段赋值将自动返回客户端。..._context {'lang': 'en_US', 'tz': 'Europe/Brussels'} 从其他记录集创建记录集时,将继承环境。...and extension) Odoo提供三种不同的机制,以模块化方式扩展模型: 从现有模型创建新模型,向副本中添加新信息,但保留原始模块 扩展其他模块中定义的模型,替换以前的版本 将模型的一些字段委派给它包含的记录...经典继承 当同时使用_inherit和 _name 属性时,Odoo使用现有模型(通过_inherit提供)作为base创建新模型。

13.5K10

在Ubuntu 16.04上安装Odoo 10

您选择的选项取决于您的特定需求: 要同时使用日志和单独的Odoo日志文件,请创建相应的目录: sudo mkdir /var/log/odoo 要仅使用journald用于日志记录,您不需要创建任何目录...db_user = odoo - PostgreSQL数据库用户的名称。在这种情况下,我们使用默认名称,但如果您在创建用户时使用了其他名称,请在此处替换。...对于正常安装,您可以跳过此行,并且此Odoo实例将默认连接到端口8069。 注意 如配置日志部分中所述,在Ubuntu 16.04中有很多Odoo日志记录选项。...如上例所示,Odoo日志将完全由系统日志管理(“ 配置日志”部分中的选项2 )。如果需要单独的日志文件,请省略该行并进行配置相应的odoo-server.conf,指定日志文件的位置。...请记住,journald将始终捕获主要的Odoo服务活动(服务启动,停止,重新启动,错误),使用单独的日志文件将仅排除日志“信息”消息,如Web服务器消息,呈现引擎等。

3.4K42
  • 在Ubuntu 16.04上安装Odoo 11堆栈

    replication:指定给定用户的复制连接。此类连接不需要数据库名称。 replicauser:上一节中创建的用户。 md5:使用客户端提供的MD5加密密码进行身份验证。...配置日志 本指南中的示例使用单独的文件来记录Odoo活动: sudo mkdir /var/log/odoo 安装Odoo 11 安装git: sudo apt install...db_port:Odoo使用PostgreSQL的默认端口5432,只有在使用自定义PostgreSQL设置时才更改此设置。 db_user:PostgreSQL数据库用户的名称。...由于odoo用户将运行该应用程序,因此相应地更改其所有权: sudo chown -R odoo: /opt/odoo/ 将odoo用户设置为日志目录的所有者: sudo chown odoo:root...在浏览器中,您应该看到可用应用程序列表,表明数据库创建成功: 第一次创建数据库时,Odoo可能需要几分钟才能加载其所有附加组件。在此过程中不要重新加载页面。

    8.9K30

    odoo 权限管理学习总结

    (只加载一次,安装或者更新模块时),则可以将noupdate设置为1。...如果文件中的部分数据需要应用一次,则可以将文件的这部分放在中,如下: odoo> 使用values字典中的值更新id值=ID的现有记录 (2, ID) 删除id=ID这条记录(调用unlink方法,删除数据及整个主从数据链接关系) (3, ID) 删除主从数据的链接关系但是不删除这个记录...--略--> odoo> 查看效果 注意: 实践时发现,通过界面点击,访问一些菜单界面时,会在菜单访问URL(参见菜单访问自动生成的URL)中自动添加model,...模型访问权限(Access Rights,表级别) 当模型中没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志中打印: 2022-12-14 09:01:38,994 32508

    10.2K20

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

    **中的基本参数 Odoo通过端口5432通过UNIX套接字连接到本地postgres。...当Postgres部署不是本地部署和/或不使用安装默认值时,可以使用数据库选项覆盖此设置。 打包的安装程序将自动创建一个新用户(odoo),并将其设置为数据库用户。 数据库管理界面受管理密码设置保护。...此设置只能使用配置文件进行设置,并在执行数据库更改之前进行简单检查。应将其设置为随机生成的值,以确保第三方不能使用此接口。 所有数据库操作都使用数据库选项,包括数据库管理界面。...这样做时,您需要将更多的http头转发给Odoo,并在Odoo配置中激活代理模式,让Odoo读取这些头。...;是否允许显示数据库列表   list_db = True   ;是否将log写入db的ir_logging表   log_db = False   ;设置模块的日志级别,可以是一组module:log_level

    7.7K31

    odoo 开发入门教程系列-安全-简介

    安全-简介 前一章中我们已经创建了第一个打算用于存储业务数据的表。在odoo这样的一个商业应用中,第一个考虑的问题就是谁(Odoo 用户(或者组用户))可以访问数据。...Data Files (CSV) Odoo是一个高度数据驱动的系统。虽然通过Python代码定制行为,但是模块的部分值在加载时设置的数据中。...可用于引用记录(不需要知道在数据库中的唯一标识)。...country_id:id 通过使用外部标识指向国家. name 州的名称 code 州的代码 在 res.country.state model中定义了这三个字段 按约定,导入数据的文件存放在模块的...当模型中没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志中打印: 2022-12-14 09:01:38,994 32508 WARNING odoo odoo.modules.loading

    95520

    如何在 Ububtu 18.04 上安装 Odoo 13

    你可以将这个名字设置成任何你想要设置的名字,同时,你还要使用这个名字来创建一个 PostgreSQL 用户。...想要安装 PostgreSQL运行下面的命令: sudo apt install postgresql 一旦安装完成,创建一个 PostgreSQL,使用和之前创建系统用户一样的名字,在我们的例子中是odoo13....service 想要查看 Odoo 服务的日志信息,使用下面的命令: sudo journalctl -u odoo13 七、测试安装 打开你的浏览器,并且输入:http://<your_domain_or_IP_address...十一、总结 这篇指南带你浏览了如何在 Ubuntu 18.04 上的 Python 虚拟环境中 安装 Odoo 13,并使用 Nginx 作为反向代理服务器。...我们展示了如何在生产环境中如何启用多进程以及优化 Odoo。

    8.8K41

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

    当数据链接到视图时,我们将它们添加到views文件夹中 本章,我们将通过XML文件加载我们第一个action和菜单。Actions 和菜单为数据库中的标准记录。...odoo中,用户接口(action,菜单和视图)大部分是通过创建和组装XML文件中的记录来定义的。常见的模式为 菜单> action > 视图。为了访问记录,用户在几个菜单级中导航。...我们Real Estate例子中,希望将一个菜单连接到 estate.property model, 以便创建一个新记录。...Odoo有许多微调方式,但通常第一步是确保: 某些字段有默认值 某些字段只读 当记录重复时,某些字段不能被拷贝 在我们的房产业务案例中,我们希望:: 售价只读(往后将自动填充) 当记录重复时,可用日期和售价不能被拷贝...我们看到一些属性,如required=True,会影响数据库中的表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性到字段。

    3K30

    如何在Ubuntu 18.04上部署Odoo 11

    Odoo用户 创建一个新的系统用户和组,其主目录/opt/odoo将运行Odoo服务。.../odoo/odoo11-custom-addons 如果您使用自定义模块,请不要忘记将my_admin_passwd更改为更安全的内容并调整addons_path。...创建一个systemd单元文件 要将odoo作为服务运行,我们将使用以下内容在/ etc / systemd / system /目录中创建odoo11.service单元文件: /etc/systemd....conf 如果没有错误,您可以启用Odoo服务在启动时自动启动: sudo systemctl enable odoo11 如果你想查看Odoo服务记录的消息,你可以使用下面的命令: sudo journalctl...默认情况下,Odoo服务器在所有接口上侦听端口8069,因此如果要禁用直接访问您的Odoo实例,您可以阻止所有公共接口的端口8069,或强制Odoo只在本地接口上侦听。

    1.9K20

    Odoo开发指北 02 启动项配置文件

    配置文件 [options] ;addons模块的查找路径 addons_path = /odoo/addons ;超级管理员(用于创建,还原和备份数据库的操作) admin_passwd = admin...db_password = odoo ;数据库端口 db_port = 5432 ;创建数据库是使用的数据库模板 db_template = template1 ;用户名 db_user = odoo..., debug_sql, info, warn, error,critical log_level = info ;指定用来储存日志的文件 logfile = odoo.log ;是否按天存放日志...osv_memory表中的记录最长的时间,以小时为单位 osv_memory_age_limit = 1.0 ;强制保存在virtuall osv_memory表中的最大记录数 osv_memory_count_limit...用户名 smtp_user = False ;是否把日志发送给系统日志服务器 syslog = False ;是否提交YAML或XML测试造成的数据库更改 test_commit = False

    1.2K10

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

    本文主要介绍如何在腾讯云的环境下,通过简单的步骤,快速搭建一个 ODOO 的站点。...购买并创建云主机 登录云主机 1、下载并安装客户端软件 从本地linux机器登录到linux云服务器时,需要使用客户端软件建立连接。 建议使用OpenSSH发布的ssh工具进行登录。...在pssword后输入密码,密码为管理员账号的密码,回车后即完成登录。 注:管理员账号的初始密码在上面购买过程中设置过,用户也可以重置密码,详见管理员账号密码重置。...实例的内网IP> db_port = 5432 db_user = 的用户名> db_password = 的密码> db_name...同时可以通过查看/data/odoo/log/odoo.log文件浏览系统日志 初始化结束,页面会自动跳转到应用页面,如下: 这样一个基本的ODOO框架就搭建完成。 参考:Odoo 文档

    9.9K30

    Gorm 数据库表迁移与表模型定义

    CreatedAt 对于有 CreatedAt 字段的模型,创建记录时,如果该字段值为零值,则将该字段的值设为当前时间 db.Create(&user) // 将 `CreatedAt` 设为当前时间...创建记录时,如果该字段值为零值,则将该字段的值设为当前时间 db.Save(&user) // 将 `UpdatedAt` 设为当前时间 db.Model(&user).Update("name",...user2 := User{Name: "jinzhu", UpdatedAt: time.Now()} db.Create(&user2) // 创建记录时,user2 的 `UpdatedAt`...秒时间戳,而不是 time,您只需简单地将 time.Time 修改为 int 即可 type User struct { CreatedAt time.Time // 在创建时,如果该字段值为零值...在使用指定数据库数据类型时,它需要是完整的数据库数据类型,如:MEDIUMINT UNSIGNED not NULL AUTO_INCREMENT serializer 指定如何将数据序列化和反序列化到数据库中的序列化程序

    43210

    Google Pay支付钱包系统设计

    监控系统健康状况并告警 故障发生时支持根因分析 3.8 基础设施服务 这些服务处理事件驱动的通信、与外部系统的集成或运行方面的问题: Kafka Broker:充当服务间异步通信的主干,实现事件驱动的工作流...事件消费 通知服务监听 user.created,并向用户发送欢迎信息 分析服务监听 user.created,并记录事件以便报告 以上汇总的交互显示了该工作流程中跨服务映射的 API 和 Kafka...日志服务会将事务记录在持久日志中,以便审计 以上总结以清晰和以服务为导向的方式概括了 P2P 支付的端到端工作流程。...分析服务记录商户交易,以便进行报告和分析。 日志服务记录交易详情,以便审计。 欺诈检测服务监控事件中的可疑活动。...2.将交易服务转为日志服务(可选): 如果需要丰富的交易详细信息(如元数据或详细日志),交易服务会向日志服务发出 GET /logs/enrich-transactions 调用。

    13310

    深入浅出Spring AOP:让你的代码更优雅

    AOP主要用于处理程序中的横切关注点(Cross-Cutting Concerns),这些关注点通常会分散在代码的多个模块中,例如日志记录、安全性、事务管理等。...CGLIB代理 CGLIB代理是基于继承的代理模式。它通过生成目标类的子类,并在子类中拦截方法调用来实现代理。Spring AOP使用CGLIB库来创建代理对象。 优势:可以代理没有实现接口的类。...为了更好地理解Spring AOP,我们通过一个实际的例子来说明如何在Spring中使用AOP。...示例场景:日志记录 假设我们有一个简单的用户服务类(UserService),其中有一个方法createUser,用于创建用户。我们希望在创建用户之前和之后记录日志。...User JohnDoe has been created. User created. 通过AOP,我们在不修改UserService类的情况下,优雅地添加了日志记录功能。

    1.2K10

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

    模型之间的关系(Relations Between Models) 上一章介绍了为包含基本字段的模型创建自定义视图。然而,在任何真实的业务场景中,我们都需要不止一个模型。此外,模型之间的链接是必要的。...这意味着可以将多个"tax"添加到我们的测试模型。...然而,在本例中,我们希望显示给定地产的报价列表,因此我们将使用one2many概念。 one2many是many2one的反向实现。...odoo如何知道我们的报价与哪个房产相关?这就是使用odoo框架的一部分魔力:有时候事情是隐式定义的。...当我们通过one2many字段创建记录时,为了方便,会自动填充相应的many2one 添加odoo14\custom\estate\models\estate_property_offer.py #!

    4.5K40

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

    自然地我们将总面积定义这两者的总和,我们将为此使用计算的字段的概念,即给定字段的值将从其他字段的值中计算出来。 到目前为止,字段已直接存储在数据库中并直接从数据库中检索。字段也可以被计算。...依赖(Dependencies) 计算的字段的值通常取决于计算记录中其他字段的值。ORM期望开发人员使用修饰符depends()指定计算方法上的依赖项。...提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时的奔溃 在表单和列表视图中添加字段,正如本章目标中显示的第二个动画中的一样。...始终首选computed field,因为它们也是在表单视图上下文之外触发的。永远不要使用onchange将业务逻辑添加到模型中。...这是一个非常糟糕的想法,因为在以编程方式创建记录时不会自动触发onchanges;它们仅在表单视图中触发。

    3.2K30
    领券