- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要在我的事件方法中做两个事件。一个是需要返回 total_workers 字段的值。但也需要返回 ID,因为当我们覆盖该方法时,它在 OpenERP 中是必要的要求。然后必须返回 2 东西。请告诉我如何在我的表单中实现它。有一个返回值,这对两件事都有效。但需要同时返回。
def create(self, cr, uid, values, context=None):
name = 'CheckRoll No = ' + str(values['checkroll_no']) + ' & Gang No = ' + str(values['gang_no'])
values.update({'name': name})
total_tea_workers = 0
offer_id = super(bpl_work_offer, self).create(cr, uid, values, context=context)
tea_worker_obj = self.browse(cr, uid, offer_id, context=context) or []
tea_worker_ids = self.pool.get('bpl.selected.tea.workers.line').search(cr, uid, [('tea_line_worker_id', '=', tea_worker_obj.id)])
for tea_worker in self.pool.get('bpl.selected.tea.workers.line').browse(cr, uid, tea_worker_ids):
if tea_worker.is_selected:
total_tea_workers += 1
return {'value': {'total_workers': total_tea_workers}}
return offer_id
已编辑
我是这样整理的,希望对大家有帮助:-)
i wrote a function for my field
def _compute_workers(self, cr, uid, ids, fieldname, arg, context=None):
total_workers = total_tea_workers = total_rubber_workers = total_sundry_workers = total_other_workers = 0
res = dict.fromkeys(ids, False)
for this in self.browse(cr, uid, ids, context=context):
tea_worker_ids = self.pool.get('bpl.selected.tea.workers.line').search(cr, uid, [('tea_line_worker_id', '=', this.id)])
for tea_worker in self.pool.get('bpl.selected.tea.workers.line').browse(cr, uid, tea_worker_ids):
if tea_worker.is_selected:
total_tea_workers += 1
rubber_worker_ids = self.pool.get('bpl.selected.rubber.workers.line').search(cr, uid, [('rubber_line_worker_id', '=', this.id)])
for rubber_worker in self.pool.get('bpl.selected.rubber.workers.line').browse(cr, uid, rubber_worker_ids):
if rubber_worker.is_selected:
total_rubber_workers += 1
sundry_worker_ids = self.pool.get('bpl.selected.sundry.workers.line').search(cr, uid, [('sundry_line_worker_id', '=', this.id)])
for sundry_worker in self.pool.get('bpl.selected.sundry.workers.line').browse(cr, uid, sundry_worker_ids):
if sundry_worker.is_selected:
total_sundry_workers += 1
other_worker_ids = self.pool.get('bpl.selected.other.workers.line').search(cr, uid, [('other_line_worker_id', '=', this.id)])
for other_worker in self.pool.get('bpl.selected.other.workers.line').browse(cr, uid, other_worker_ids):
if other_worker.is_selected:
total_other_workers += 1
total_workers = total_tea_workers + total_rubber_workers + total_sundry_workers + total_other_workers
res[this.id] = total_workers
return res
i changed my integer field to functional field
'total_workers': fields.function(_compute_workers, type="integer", string="Total Workers"),
最佳答案
除了创建的记录的 ID 之外,您不应该在 create()
中返回任何其他内容。通常这是通过 super(myclass, self).create(...)
将调用结果返回给父级来完成的。
目前尚不清楚您要使用 total_workers
代码实现什么目标。如果 total_workers
应该是一个计算字段,您根本不必覆盖 create
:只需将此列声明为 fields.function
并将计算的代码放在相应的函数中。
例如:
def _compute_workers(self, cr, uid, ids, fieldname, arg, context=None):
result = dict.fromkeys(ids, False) # default result for each id
for this in self.browse(cr, uid, ids, context=context):
# let's assume you have a one2many called worker_ids
result[this.id] = len(this.worker_ids)
return result
_columns = {
'total_workers': fields.function(_compute_workers, type="integer",
string="Total Workers")
}
在这一点上,好好看看 OpenERP technical memento 是个好主意。和 OpenERP framework documentation , 以获得 OpenERP API 的概述以及它应该如何使用:-)
一旦你很好地理解了模型的结构、各种字段类型、CRUD 方法和继承模式,你应该能够快速浏览官方模块的源代码并找到你想要的任何示例完成。这应该会让您的生活更轻松!
关于python - 在 OpenERP ver 7 中覆盖具有多个返回的创建方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16273491/
2011 年 9 月 5 日更新:问题已解决 -- 查看底部的详细信息 我在使用 Aptana Ver 3.0.4 中的 Code Assist 时遇到问题。 Eclipse 3.7.0 的插件。 我
我正在开发 API,它给我 PDF(1.7 版)作为响应,我的项目正在使用不支持解析 PDF 1.7 版的 zend pdf 库。 所以我决定转换 PDF 版本以与 Zend Pdf 兼容。 有什么方
我尝试在 Android Studio 上构建和使用 FFmpeg 库。 我的环境 Windows 7 64 位、Cygwin64、Android Studio 2.1.2、FFmpeg 3.1.1、
假设我有 3 个表:Standard_Code 以及 Report and Transactions。 Standard_Code table field name: Code Values
将查询字符串附加到样式表末尾有什么作用?我经常看到: some-stylesheet.css?ver=1.2.3 谢谢。 最佳答案 通常人们用它来防止缓存 CSS 文件。 服务器软件(例如 Apach
我正在尝试从批处理文件中检查OS版本,并且遇到以下问题。 线 FOR /F "tokens=*" %%i IN ('ver') DO (SET var=%%i) 从批处理文件执行时将冻结cmd,而命令
我试图安装最新的VMWare PowerCLI,但出现错误:Install-Module:术语“Install-Module”未被识别为cmdlet的名称,功能... 一些挖掘显示我没有安装Power
从之前的版本移至 pgadmin4 ver3 后,在查询窗口中编辑文本时,我不再能够看到光标。 我可以突出显示文本,但如果我在文本行内移动任何位置,则光标不会出现。它有时会出现在行尾,但一旦我向左箭头
我只是在寻找一些关于 hibernate 如何使用 ver 列处理冲突的文档。 到目前为止的理解:对一行的更改意味着更改的行插入了新的版本号 -- 这是通过“select max(ver)+1”完成的
在我的 Android 游戏中,子弹出现的速度太快而且彼此距离太近!我怎样才能调整他们的行为?这是 a picture of it 动画对象类 package game.objects.animati
在C++17 template deduction guide not used for empty parameter set? 之后,在模板推导指南中遇到了另一个怪事(遗憾的是,该错误 https
我正在尝试创建一个表,该表将在服务器中使用 phpmyadmin 按年份范围进行分区: mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_6
我想知道版本命名的具体作用是什么? 喜欢 jquery.js?ver=1.4.4 我的意思是如果我使用像这样的 cdn jquery/1.4.4/jquery.min.js?ver=1.4.4但是另一
在 postman 工作(原始格式数据与 application/json 类型)带 Guzzle 6 url-http://vm.xxxxx.com/v1/hirejob/ { "c
我已经在这个问题上工作了 6 个小时,但我似乎看不到它。这是index.html 中的片段: dataArray(总是工作正常): (function() { 'us
我正在尝试在 Google 文档上上传大文件。我遇到了Resumable Upload . 但是我如何在 Google API Ver 2 中实现它呢? 谢谢 最佳答案 根据我在 API 的 V2 和
最近我的团队遇到了一个奇怪的情况。去年年底,我们从 IE 8 迁移到 IE 11。我们的应用程序现在设计为在 IE 11 企业模式下工作。 如果用户使用的是 IE 8,我们需要显示一个 javascr
我的应用程序在 Android 4.0+ 版本上运行良好,但是当我尝试在版本 4.0 上启动它时出现错误。 2.3有什么建议么?android:minSdkVersion="8"android:tar
我最近购买了一个主题,该主题包含以下 HTML 代码; 所以,我想知道?ver=3.7.1的用法是什么。感谢您的帮助。 最佳答案 资源在每个 URL 的基础上被缓存。通过在发布新版本时更改查询字符
我需要在我的事件方法中做两个事件。一个是需要返回 total_workers 字段的值。但也需要返回 ID,因为当我们覆盖该方法时,它在 OpenERP 中是必要的要求。然后必须返回 2 东西。请告诉
我是一名优秀的程序员,十分优秀!