4

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

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'),
    }

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

4

5 回答 5

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, 
}

问候,-马里奥

于 2013-01-05T23:22:01.970 回答
2

导入时间和默认值

_defaults = {
    'website': 'www.veppsight.com',
    'date': lambda *a: time.strftime('%Y-%m-%d'),
}
于 2013-01-02T12:45:51.403 回答
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

谢谢你

于 2013-01-02T05:19:01.790 回答
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 中的内联或匿名函数。

于 2013-01-08T11:35:42.000 回答
0

这个怎么样:

从 osv 导入 o​​sv,字段
进口时间

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

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

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


res_partner()
于 2013-01-02T13:09:00.773 回答