如何在fields_view_get中获取字段的值?

时间:2014-10-28 17:37:26

标签: openerp

我想在openerp 7.0中的fields_view_get方法中获取字段的值。

我尝试了以下内容: 1-发送上下文属性中字段的值,如下所示:

< field name="employee_id" context="{'employee_id':employee_id}" />

并在fields_view_get中我得到如下:

print "employee_id in the context value is  %s"%(context.get('employee_id', False))

但始终是context.get(...)返回False。所以我尝试了以下内容:

2-在字段的onchange方法上我在上下文中发送字段的值如下:

def onchange_employee_id(self, cr, uid, ids, employee_id):
return {'context': {'employee_id': employee_id}} 

并在fields_view_get中我得到如下:

print "employee_id in the context value is  %s"%(context.get('employee_id', False))

但同样的事情始终是context.get(..)返回False。

如何在fields_view_get函数中获取字段的值?

1 个答案:

答案 0 :(得分:0)

也许这个答案对你来说太迟了,但也许有人会发现它很有用。

如果您只需要在表单视图中使用动态视图,则应编写树视图,并且可以将选定的记录ID放入上下文...因此,使用上下文ID,您可以读取字段。

但是fields_view_get并不容易。别忘了更新返回字典(两个非常重要的键:字段,拱门)。 如果要使用不可见或只读标记,则应使用像attrs这样的修饰符标记。

示例:

def fields_view_get(self, cr, uid, view_id=False, view_type='tree', context=None, toolbar=False, submenu=False):
    fields = self.read(cr, uid, context['working_id'], [])
    actualView = super(ModelName, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)

    # you can write default view in xml and dynamic complete with some field in this method
    actualView['fields'].update({'field_name':{'type': 'text', 'string': 'Name'}})
    arch = minidom.parseString(actualView['arch'])

    #for example: triggered to <newline/> field 
    newlineField = arch.getElementByTagName('newline').item(0) 
    element = arch.createElement('field_name')
    element.setAttribute('name', 'Name')
    newlineField.insertBefore(element, 0)

    actualView['arch'] = arch.toxml("utf-8")
    return actualView