Python 在res_config中设置默认持续时间
我有一个模块,有一个创建日期(当然是创建日期)和一个截止日期 问题是,我希望能够根据创建日期为这个截止日期设置一个默认值。 但我希望能够从(比方说)res_config动态配置它 e、 g 如果我在res_config中将默认值配置为5天,我希望截止日期的默认值填充为创建日期前5天的日期 这可能吗Python 在res_config中设置默认持续时间,python,default,openerp,Python,Default,Openerp,我有一个模块,有一个创建日期(当然是创建日期)和一个截止日期 问题是,我希望能够根据创建日期为这个截止日期设置一个默认值。 但我希望能够从(比方说)res_config动态配置它 e、 g 如果我在res_config中将默认值配置为5天,我希望截止日期的默认值填充为创建日期前5天的日期 这可能吗 谢谢我使用型号ir成功地完成了这项工作。配置\u参数 在res_config.py中: class my_configuration(osv.osv_memory): _inherit = [
谢谢我使用型号
ir成功地完成了这项工作。配置\u参数
在res_config.py中:
class my_configuration(osv.osv_memory):
_inherit = ['res.confi.settings']
_columns = {
'default_deadline' : fields.integer('Days per default', help="""Help field"""),
}
...
def set_default_deadline(self, cr, uid, ids, context=None):
config = self.browse(cr, uid, ids)
config = config and config[0]
val = '%s' %(config.default_deadline) or '10'
self.pool.geet('ir.config_parameter').set_param(cr,uid, 'key_value', val)
return True
通过这个,我们创建了一个系统参数。它实际上是作为从“key_value”到字符串val的映射创建的,因此我们必须在必要时将其转换为所需的类型。
在我的例子中,y创建了一个函数来获取模块中的截止日期:
def _get_deadline_date(self, cr, uid, context=None):
val = self.pool.get('ir.config_parameter').get_param(cr, uid, 'key_value')
try:
val = int(val)
except:
# Just in case...
val = 30
return (datetime.now() + timedelta(days=val)).strftime('%Y,%m,%d')
_defaults = {
'deadline_date': lambda s, cr, uid, c: s._get_deadline_date(self, cr, uid, context=c),
}
谢谢,希望有帮助