此处显示我的openerp模型中的出生日期字段
'date_of_birth': fields.date('Date of Birth'),
需要将其默认日期更改为25年前。因为用户更容易选择年份。 (在openerp jquery中默认加载当前20年的列表,用户必须花些时间选择更早的年份。)
代表:
_defaults = {
'date_of_birth':fields.date.context_today - 25years
请建议我实现这个问题(如果它的python函数似乎对我的要求有好处)
答案 0 :(得分:1)
如果您的'出生日期'是一个字符串,那么您可以使用enter link description here strptime将其转换为日期时间对象。 使用该对象,使用timedelta模块
减去25年更容易你不能马上减去25年,你必须手动计算多少天。
但最后,它看起来像这样:
import datetime
my_date = datetime.datetime.strptime('1 Feb 2013', '%d %b %Y') # converts the date 1 Feb 2013 into a datetime object
new_date = my_date - datetime.timedelta(days=36000) # Substracts 36000 days
print(new_date.strftime('%d %b %y')) # prints: '11 Jul 1914'
答案 1 :(得分:1)
查看dateutil module - 您必须安装它。它使这种计算变得容易。
>>> import datetime
... from dateutil import relativedelta
...
... today = datetime.date.today()
... past = today + relativedelta.relativedelta(years=-25)
... print(today, past, sep='\t')
2013-05-05 1988-05-05
答案 2 :(得分:0)
现在它可以使用此代码
def _dob(self, cr, uid, context=None):
today = datetime.date.today()
past = today + relativedelta.relativedelta(years= -25)
return past.strftime('%Y-%m-%d')
感谢所有答案