跳至内容
菜单
此问题已终结
1 回复
6170 查看

Hi all,

I intend to make 

annual_dateofbirth=fields.Date('Nächster Geburtstag', compute='_calc_annual_dob',store=True)

available as Filter. I set stored=True to make it available as Field within Filter. However, it Needs to be recalculated on each page load. Thats why I introduced a second field current_date. 

current_date=fields.Date('Aktuelles Datum', compute='_calc_current_date')


@api.depends('current_date')
def _calc_current_date(self):
for rec in self:
rec.current_date = date.today()

@api.depends('current_date')
def _calc_annual_dob(self):
for rec in self:
if rec.birthday:
today = date.today()
dob = rec.birthday.replace(year=today.year)

if parsed < today:
dob= dob.replace(year=today.year + 1)

rec.annual_dateofbirth=parsed.strftime("%Y-%m-%d")


However, _calc_annual_dob is only executed when the field is changed in the form, not on page reload.

I appreciate any hint!

Regards,

Matthias


形象
丢弃
最佳答案

Hi,

By default, a computed field is not stored in the database and is computed on-the-fly. Adding the attribute store=True will store the field’s values in the database. The advantage of a stored field is that searching on that field is done by the database itself. The disadvantage is that it requires database updates when the field must be recomputed.


Thanks

形象
丢弃
相关帖文 回复 查看 活动
1
4月 24
1309
2
3月 24
1912
2
11月 19
6754
1
5月 19
3768
2
4月 18
12501