Если вы используете только Даты, вы должны использовать date
вместо datetime
, и если первый, если вы только хотите, чтобы пользователь использовать дату сегодняшнего дня, получить автоматически дата сегодня и поставить его readonly
, что-то вроде этого:
...
import time
...
#here you got a field with the date of today.
date_today = fields.Date('Today is: ', default = lambda *a: time.strftime("%Y-%m-%d"), readonly = True)
и если вы хотите, что один пользователь может только выбрать дни вчера и сегодня, это немного более трудоемкий, я знаю, что это не лучший w чтобы сделать это, но он работает нормально.
...
from openerp.exceptions import ValidationError
...
chosen_date = fields.Date('Chosen day: ', default = lambda *a: time.strftime("%Y-%m-%d"))
@api.onchange('chosen_date'):
def _onchange_chosen_date(self):
yesterday = str(int(time.strftime("%d")) - 1)
if len(yesterday) == 1:
yesterday = '0' + yesterday
yesterday_date = time.strftime("%Y-%m-" + yesterday)
if self.chosen_date != time.strftime("%Y-%m-%d") or self.chosen_date != yesterday_date:
return { 'warning': {'title':"Warning", 'message':"You are only able to choose only yesterday and today...!"}}
EDIT
Я использую только V8, но я знаю, что-то синтаксиса V7!
1-й.
...
import time
...
#here you got a field with the date of today.
date_today = fields.date('Today is: ', default = lambda *a: time.strftime("%Y-%m-%d"), readonly = True)
2-й.
...
from openerp.osv import osv
...
chosen_date = fields.date('Chosen day: ', default = lambda *a: time.strftime("%Y-%m-%d"))
def _onchange_chosen_date(self, cr, uid, ids, chosen_date, context=None):
yesterday = str(int(time.strftime("%d")) - 1)
if len(yesterday) == 1:
yesterday = '0' + yesterday
yesterday_date = time.strftime("%Y-%m-" + yesterday)
if self.chosen_date != time.strftime("%Y-%m-%d") or self.chosen_date != yesterday_date:
raise osv.except_osv(("Warning"),("You are only able to choose only yesterday and today...!"))
И в XML:
<field name="chosen_date" on_change="_onchange_chosen_date(chosen_date)" />
Я надеюсь, что это может быть полезным для Вас !!!
selected_date = datetime.strptime (fdate, "% Y-% m-% d% H:% M:% S"). Date() ТипError: должен быть строкой, а не bool. Я получаю эту ошибку Vigneshwaran –