콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
26493 화면

Hello Expert,

how to set the date_end field to current day +6days, for instance the value would be date_start = 09/25/2014 then date_end = 10/01/2014. Thanks

python----

from datetime import datetime
from dateutil.relativedelta import relativedelta
from osv import osv, fields
from openerp import tools

class test_product(osv.Model):
    _name = "test.product"

    _columns = {

        'date_start': fields.date('Date End'),
        'date_end': fields.date('Date End'),

}

_defaults= {
    'date_start': lambda *a: time.strftime('%Y-%m-%d'),
    'date_end': lambda *a: (datetime.today() + relativedelta(days=6)).strftime('%Y-%m-%d'),
    }

XML---

                <field name="date_start"/>
                <field name="date_end"/>

아바타
취소
베스트 답변

Also, we can use timedelta 

For the manipulation of date, we can use timedelta to add the day by 5. For more info: https://docs.python.org/2/library/datetime.html#timedelta-objects

from datetime import datetime, timedelta

_defaults={
          'date_start': lambda *a:datetime.now().strftime('%Y-%m-%d'), 
          'date_end': lambda *a:(datetime.now() + timedelta(days=(6))).strftime('%Y-%m-%d'),
}

아바타
취소
작성자

Thanks sir

Hello Atchuthan, i am also facing some issue.
deadline = fields.Datetime('Deadline', help="Date by which the person can open the survey and submit answers",
oldname="date_deadline", default=time.strftime('23:59:59'))
above field not working. My time should be 23:59 while date is manual

베스트 답변

Hello,

 

Please make sure that you've made following imports: 

from datetime import datetime
from dateutil.relativedelta import relativedelta

-than change your code to:

_defaults= {
    'date_start': lambda *a: time.strftime('%Y-%m-%d'),
    'date_end': lambda *a: (datetime.today() + relativedelta(days=6)).strftime('%Y-%m-%d'),
    }

 

regards,

아바타
취소
작성자

Hi Temur, no default value when heating create, even the date_start field, no value appeared. Please see above code modified Thanks for the response and time really appreciate your help

You're missing one more import: "import time" you should either add this import, OR use "datetime.today().strftime('%Y-%m-%d')" instead of "time.strftime('%Y-%m-%d')". As you've already used "time" in your question code I didn't mention this import in my answer, I assumed that you had it already.

and more correct import for osv will be: "from openerp.osv import osv" instead of: "from osv import osv, fields"

sorry, "from openerp.osv import osv, fields"

작성자

Thanks you so much is working now

that's nice