Odoo中文网|Odoo实施培训

标题: 如何在不同的视图下得到不同的默认值 [打印本页]

作者: Juggle    时间: 2016-2-23 15:08
标题: 如何在不同的视图下得到不同的默认值
本帖最后由 Juggle 于 2016-2-23 15:10 编辑

如何动态改变'type_ids' 值:
def _get_type_common(self, cr, uid, context):
     ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1)],
     context=context)
return id

_defaults = { 'type_ids': _get_type_common }
我的模块源于另外一个模块,但是有不同视图,我想改变新视图中的'type_ids'默认值但不改变原视图中的'type_ids'默认值,增加:   
ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1),('task_type_is_project','=',False)], context=context)
是否可行?求赐教!



作者: 孤独九剑    时间: 2016-2-24 08:58
重新定义 _get_type_common ,使用if 语句根据context 值选择合适的 ids.
def _get_type_common2(self, cr, uid, context):
    if (context['params']['action']==171):
       ids =self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1),
       ('task_type_is_project','=',False)], context=context)
    elif (context['params']['action']==142):
       ids = self.pool.get('project.task.type').search(cr, uid, [('case_default','=',1),
       ('task_type_is_project','=',True)], context=context)
    return ids
作者: Juggle    时间: 2016-2-24 09:17
问题解决了,非常感谢




欢迎光临 Odoo中文网|Odoo实施培训 (http://www.chinaodoo.net/) Powered by Discuz! X3.2