4

新しいパートナーを作成するときに、今日の日付をデフォルト値として設定する OpenERP 7 のモジュールの作成に取り組んでいます。モジュールをインストールし、Openerp サービスを再起動しましたが、デフォルトは少し変更されていません。(Pythonラムダコードの問題ではないことを確認するために、「グーフボール」フィールドとウェブサイトフィールドの偽のデフォルトデータを含めました。そうではありませんでした...) これが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
_defaults = {
        'date': lambda self,cr,uid,context={}: context.get('date', fields.date.context_today(self,cr,uid,context=context)),

or

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

or

'date' : fields.date.context_today,
 }

Lambda is a in line or anonymous function in python.

于 2013-01-08T11:35:42.000 に答える
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ます。AS DATE は POSTGRESQL の DT です

ありがとうございました

于 2013-01-02T05:19:01.790 に答える
0

これはどう:

from osv import osv, fields
輸入時間

クラス res_partner(osv.osv):
    _inherit = 'res.partner'

    _columns = {"グーフボール": fields.char('グーフボール', size=15)}

    _デフォルト = {
        'ウェブサイト': 'www.veppsight.com',
        'date1': ラムダ *a: time.strftime('%Y-%m-%d'),
    }


res_partner()
于 2013-01-02T13:09:00.773 に答える