【发布时间】:2017-05-08 22:56:33
【问题描述】:
我正在使用以下模型来存储数据。
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
timestamp=db.Column(DateTime(timezone=True), nullable=False)
def __init__(self, username, timestamp=None):
self.username = username
if timestamp is None:
timestamp =datetime.datetime.now()
self.timestamp = timestamp
def __repr__(self):
return '<User %r>' % self.username
现在,我的问题是:使用
获取数据时user = User.query.filter_by(username='admin').first()
我了解数据将被提取并转换为User 对象?
总而言之,我想要完成的是,当获取数据时,使用上述查询,自动操作数据。
也就是说,在我的例子中,时间戳是已知的。我将使用 pytz.localize() 来执行此操作。
我试过了:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
timestamp=db.Column(DateTime(timezone=True), nullable=False)
def __init__(self, username, timestamp=None):
self.username = username
if timestamp is None:
timestamp =datetime.datetime.now()
timestamp = pytz.utc.localize(timestamp)
self.timestamp = timestamp
def __repr__(self):
return '<User %r>' % self.username
我认为它是,当对象被初始化时,
if(timestamp is none)
new entry
initialize timestamp
make timezone aware #even if fetched from db
self.timestamp=timestamp`
但是,它不起作用。查询数据时不会调用__init__。可以做什么?
【问题讨论】:
标签: python python-2.7 flask sqlalchemy flask-sqlalchemy