python - 遍历 Odoo 预定动作中的所有记录
问题描述
我正在创建一个 cron 作业,它将每天运行并检查记录中的特定字段值。你能建议我,如何遍历所有记录吗?有一个已经可用的变量“记录”。我可以使用这个变量吗?
我试图遍历记录字段,我尝试过,task = env['x.duties']
但我不确定如何继续前进。
编辑: 我使用的是 Odoo 12 网络版。我创建了一个名为 Task(Using odoo studio) 的自定义应用程序,我们在其中为员工定义任务。有些任务应该会重复发生。所以我为此定义了条件,例如,任务可以根据天数或每月的任何日期重复发生。
我需要创建一个自动化操作,在其中检查是否需要创建任务(记录)。我通过在“操作选项”下选择“执行 Python 代码”从 Web 界面执行此操作。在代码部分中,我需要获取所有记录,然后遍历它们中的每一个以检查是否需要创建新记录。
有许多预定义的变量,如 env、record、records 等。我需要知道如何进行。
我能够使用创建新记录
env['x_duties'].create({'x_name': 'example'})
请指导我如何获取特定模型的所有记录并使用循环一一遍历记录
解决方案
您应该search()
在自动操作代码中使用您的模型。例如,查找数据库中的每条记录并在检查条件后创建一条新记录:
# search all duties in database
# probably use a better domain to filter out non interesting
# duties for example archived records
duties = env['x_duties'].search([])
for duty in duties:
# does this duty meet the condition?
if duty._meets_condition(): # implement your own way this is just pseudo!
values = {'x_name': 'new duty as recurring for %s' % duty.x_name}
duty.create(values)
推荐阅读
- python - 如何将 matplotlib 生成的多个绘图发送到 pptx 而没有任何重叠?
- node.js - npm 告诉 .env 文件不存在(但确实存在),它甚至可以打印它
- javascript - 如何解决 PHP 网站测试中的每个 AMP 错误
- javascript - 我正在做的 Three.js 项目,相机移动很奇怪
- segmentation-fault - 安装不匹配的 glibc 版本后如何恢复损坏的 Ubuntu?
- xamarin.forms - 是否可以使用 Uno 平台将 AdMob 集成到 Android 应用程序中
- scala - 在 scala 中使用 s3 路径中的空格字符执行 cmd
- xmpp - 如何在 ejabberd 中撤回消息?
- python - 如何在python中获取特定文件的路径
- android - 电话交换机如何工作?