鱼C论坛

 找回密码
 立即注册
查看: 2759|回复: 1

python 方法之间如何传递context

[复制链接]
发表于 2017-9-10 12:03:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 只为 于 2017-9-10 12:05 编辑

如下代码,第一个方法中click_ready_button()获取了context的值,同时新增一个键到context,需要把context的值同步到调用的方法update_status()中。

问题:
第二个方法获取context,会发现第一个方法中update后的键没有,context的作用域也是方法内部吗?如果实现我说的传至,第二个方法增加个参数context=context吗?

注:
方法click_ready_button()的context值来源于视图,方法update_status()单独调用的话,context来源于视图,如果是被click_ready_button()方法调用的话,就需要用到被调用方法的context了。

  1. @api.multi
  2.     def click_ready_button(self):
  3.         context = dict(self._context or {})
  4.         section = context.get('section', False)

  5.         if section:
  6.             if section == 'dfs':
  7.                 self.update(state='progress')
  8.                 self.with_context(context)
  9.                 self.update_dfs_status()
复制代码

  1. @api.one
  2.     def update_status(self):
  3.         context = dict(self._context or {})
  4.         state = context.get('state', False)
  5.       
  6.         if state:
  7.             self.dfs_status = state
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-9-15 21:49:03 | 显示全部楼层
已解决,谢谢各位。

代码如下:
  1. @api.multi
  2.     def click_ready_button(self):
  3.         context = dict(self._context or {})
  4.         section = context.get('section', False)

  5.         if section:
  6.             if section == 'dfs':
  7.                 self.update(state='progress')
  8.                 self.with_context(context).update_dfs_status()
  9.                
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-23 19:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表