Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
26487 Widoki

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"/>

Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
Autor

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

Najlepsza odpowiedź

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,

Awatar
Odrzuć
Autor

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"

Autor

Thanks you so much is working now

that's nice