我有一个带有变量的SQLAlchemy db.Model类,我想在查询访问期间更新/重置其值?
import datettime as dt
class MyEventCounter(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(128))
daily_counter = db.Column(db.Integer, default=0)
last_updated_at = db.Column(db.DateTime, nullable=False,
default=dt.datetime.utcnow)
daily_counter整天增加,但是第二天更新/重置。
如果“ last_updated_at”是在前一天,是否有一种方法可以在查询过程中更新/重置“ daily_counter”(例如:MyEventCounter.query.all())? PS:也许有点像计算属性
答案 0 :(得分:1)
是的,您应该使用属性。它应该像这样简单:
from datetime import datetime as dt
@property
def counter(self):
if self.last_updated_at.date() < dt.now().date():
self.last_updated_at = dt.now()
self.daily_counter = 0
db.session.commit()
return self.daily_counter