如何将值从 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的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从 tableview 传递到 collectionview

如何将值从动态列表视图传递到活动?

如何将值从一个片段的回收器视图项传递到另一个片段

如何将值从列表视图传递到 detalis Activity

如何将值从mysql传递到创建视图中的表单字段

如何将值从视图传递到不可编辑的字段django python