在OpenERP中设置默认日期

时间:2013-01-02 02:40:11

标签: openerp

我正在为OpenERP 7创建一个模块,在创建新合作伙伴时将今天的日期设置为默认值。我已经安装了模块,重新启动了Openerp服务,默认值没有改变。 (我在网站字段中包含了一个“goofball”字段和虚假默认数据,以确保它不是python lambda代码问题。它不是......)这是我在合作伙伴中的代码。吡啶:

from osv import osv, fields
import datetime

class res_partner(osv.osv):
    _inherit = 'res.partner'

    _columns = {"goofball":fields.char('goofball', size=15)}

    _defaults = {
        'website': 'www.veppsight.com',
        'date': lambda *a: datetime.date.today().strftime('%Y-%m-%d'),
    }

未输入网站的默认数据&日期字段和“goofball”字段不是在我在psql中验证的数据库中创建的。我究竟做错了什么?

5 个答案:

答案 0 :(得分:10)

从V6.1开始,有一个新功能可以处理今天的日期,称为context_today。

您可以通过以下链接查看背景信息...... http://openerp-expert-framework.71550.n3.nabble.com/Bug-925361-Re-6-1-date-values-that-are-initialized-as-defaults-may-appear-as-quot-off-by-one-day-quoe-td3741270.html

基于此,你可以使用......

_ defaults = { 
'date1': fields.date.context_today, 
}

此致 -Mario

答案 1 :(得分:2)

导入时间和默认值

_defaults = {
    'website': 'www.veppsight.com',
    'date': lambda *a: time.strftime('%Y-%m-%d'),
}

答案 2 :(得分:1)

使用以下代码:

from osv import osv, fields
import time

class res_partner(osv.osv):
    _inherit = 'res.partner'

    _columns = {"goofball":fields.char('goofball', size=15)}

    _defaults = {
        'website': 'www.veppsight.com',
        'date1': time.strftime('%Y-%m-%d'),
    }

如果可能的重命名字段名称DATE以及某些东西。由于日期是POSTGRESQL中的DT

谢谢

答案 3 :(得分:1)

_defaults = {
        'date': lambda self,cr,uid,context={}: context.get('date', fields.date.context_today(self,cr,uid,context=context)),

'date': lambda self, cr, uid, context={}: context.get('date', time.strftime("%Y-%m-%d %H:%M:%S")),

'date' : fields.date.context_today,
 }

Lambda是python中的行内或匿名函数。

答案 4 :(得分:0)

这个怎么样:

from osv import osv, fields
import time

class res_partner(osv.osv):
    _inherit = 'res.partner'

    _columns = {"goofball": fields.char('goofball', size=15)}

    _defaults = {
        'website': 'www.veppsight.com',
        'date1': lambda *a: time.strftime('%Y-%m-%d'),
    }


res_partner()