查看“添加业务逻辑”的源代码
←
添加业务逻辑
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看并复制此页面的源代码:
我们应该编辑todo_model.py Python文件,将按钮所调用的方法添加到类中。 首先,我们需要导入新的API,因此将其添加到Python文件顶部的import语句:<br/><br/> from odoo import models, fields, api <br/><br/> Toggle Done按钮的操作将非常简单:只需切换Is Done? 标记。对于记录上的逻辑,使用@api.multi装饰器。 这里,self将表示一个记录集,然后我们应该遍历每个记录。<br/> 在TodoTask类中,添加:<br/><br/> @api.multi def do_toggle_done(self): <br/> for task in self: <br/> task.is_done = not task.is_done <br/> return True <br/><br/> 代码循环遍历所有待完成的任务记录,并对每个任务记录修改is_done字段,将值取反。 该方法不需要返回任何东西,但我们应该让它至少返回一个True值。 原因是客户端可以使用XML-RPC来调用这些方法,并且此协议不支持只返回None值的服务器函数。<br/> 对于Clear All Done按钮,我们需要更进一步。 它应该查找已完成的所有活动记录,并使它们处于非活动状态。 通常表单按钮只能对选定的记录起作用,但在这种情况下,我们希望它也对除当前记录之外的记录起作用:<br/><br/> @api.model def do_clear_done(self): <br/> dones = self.search([('is_done', '=', True)]) <br/> dones.write({'active': False})<br/> return True<br/><br/> 在用 @api.model装饰的方法上,自变量表示没有记录的模型。 我们将构建一个包含所有标记为done的任务的dones记录集。 然后,我们将active标志设置为False。<br/> 搜索方法是一种返回满足某些条件的记录的API方法。 这些条件写在一个域中,这是一个三元组列表。<br/> 我们将在第6章“视图 - 设计用户界面”中更详细地探讨域。<br/> 写入方法同时对记录集的所有元素设置值。 要写入的值使用字典进行描述。 在这里使用write比遍历记录集更有效率,以便逐一为每个记录集赋值。<br/>
返回至
添加业务逻辑
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
odoo 中文开发手册
odoo 开发参考
odoo 实施笔记
Odoo 最佳方案
关于 OdooV
Odoo FAQ
工具
链入页面
相关更改
特殊页面
页面信息
友情链接
odoo官网
odoo中文网
odoo实施