如何将值从 def 传递到视图 openerp
Posted
技术标签:
【中文标题】如何将值从 def 传递到视图 openerp【英文标题】:How to pass value from def to a view openerp 【发布时间】:2016-09-21 08:09:29 【问题描述】:这是我的代码:
def view_purchase(self, cr, uid, ids, context=None):
return
'type': 'ir.actions.act_window',
'name': 'diary_purchase',
'view_mode': 'form',
'view_type': 'form',
'context': "'name': 'my purchase'",
'res_model': 'diaries_purchases',
'target': 'current',
'flags': 'form': 'action_buttons': True
我需要将值“我的购买”发送到名为视图 diaries_purchases 名称的特定字段,我根据上下文猜测,但我的代码不起作用,感谢您的帮助
【问题讨论】:
你是如何得到"'name': 'my purchase'"
的,即字符串而不是字典?
字段名是char类型
【参考方案1】:
通过在字段名称前加上 default_
前缀来传递这样的上下文
def view_purchase(self, cr, uid, ids, context=None):
return
'type': 'ir.actions.act_window',
'name': 'diary_purchase',
'view_mode': 'form',
'view_type': 'form',
'context': 'default_name': 'my purchase',
'res_model': 'diaries_purchases',
'target': 'current',
'flags': 'form': 'action_buttons': True
【讨论】:
【参考方案2】:在您的目标模型中(使用 view_purchase()
函数打开的)。访问上下文变量self.env.context
你应该找到你的值。您应该在字段 name
上使用计算值或默认值。
def _get_name(self):
self.name = self.env.context.get('name')
name = fields.char(string="Name",compute=_get_name,store=True)
【讨论】:
以上是关于如何将值从 def 传递到视图 openerp的主要内容,如果未能解决你的问题,请参考以下文章