我有以下所示的类:为什么不使用flask sql alchemy更新记录的属性?
class Account(db.Model, flask_login.UserMixin):
__tablename__ = 'account'
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(75))
username = db.Column(db.String(50))
password = db.Column(db.String(250))
admin = db.Column(db.Boolean)
def __init__(self, email='', username='', password='', admin=None):
self.email = email
self.username = username
self.password = password
self.admin = admin
def __repr__(self):
return '<Account %r>' % self.username
当我通过表单创建一个帐户,管理员属性将是None
。但是,当我访问数据库并尝试手动将其设置为True
时,该属性将更新,但是当我再次访问数据库时,该属性为None
这非常烦人。
以下是我执行控制台上:
account = Account.query.get(1)
account.admin = True
db.session.commit()
db.admin ----> True
exit()
#restart again
account = Account.query.get(1)
account.admin ----> None
我在做什么错?
'get'不需要重新获取记录。当'account.admin'为'None'时,你确定你有一个干净的会话吗? – univerio
除非'db.admin'不是错字(应该是'account.admin'),否则我无法重现您的问题。请[edit]包含[mcve]。 – davidism