行功能值如何在保存记录之前显示

时间:2013-08-16 07:06:07

标签: python postgresql openerp

Openerp 7基于此要求销售订单行剩余天数始终计算开始日期减去今天。使用的功能字段和on_change功能: -

def _remaining_days(self, cr, uid, ids, field_name, arg, context=None):
    res = {}
    if not ids:
        return {}
    for val in self.browse(cr, uid, ids, context=context):
        result = datetime.datetime.strptime(val.start_date, '%Y-%m-%d') - datetime.datetime.strptime(current_date, '%Y-%m-%d')
        res[val.id] = result.days
    return res

'remaining_days': fields.function(_remaining_days, method=True, string='Remaining days', type='integer'),


def onchange_holddays(self, cr, uid, ids, start_date, context=None):
    result = {}  
    context = context or {}
    if release_date:
        current_date = time.strftime('%Y-%m-%d')
        remaining = datetime.datetime.strptime(release_date, '%Y-%m-%d') - datetime.datetime.strptime(current_date, '%Y-%m-%d')
        result['remaining_days'] = remaining.days                
    return {'value': result}

在订单行剩余天数值未自动更新。一旦保存主销售订单记录,则只更新剩余天数值。如何在保存记录之前显示列表视图中的剩余天数值。 硝酸钾

1 个答案:

答案 0 :(得分:1)

函数字段仅在保存记录时执行,因此在此之前您将无法获取这些值。使用On_change事件并在运行时显示值,或使用向导接受此类数据并将其保存在主窗体上。