我有一个简单的SQLALCHEMY模型,如:
class User(db.Model):
""" User Model for storing user related details """
__tablename__ = "users"
UserID = db.Column(db.Integer, primary_key=True, autoincrement=True)
Email = db.Column(db.String(255), unique=True, nullable=False)
UserName = db.Column(db.String(255), unique=True, nullable=False)
Password = db.Column(db.String(255), nullable=False)
#bla....
def __init__(self, email, username, password):
# private
self.__private = 'testing'
# bla...
def test(self):
print self.__private
# bla....
在我的应用中,我做了一个简单的查询:
user = User.query.filter((User.Email == req_email) | (User.UserName == req_username)).first()
问题:我打电话时
user.test()
它引发了我的错误:
'用户'对象没有属性'_User__private'
,因为我的私有变量从未在 init 函数中初始化。
问题:那么,如何在查询后启动类模型?
答案 0 :(得分:0)
您需要使用load
事件:
@event.listens_for(User, "load")
def set_private_after_load(target, context):
target.__private = "testing"