如何设置PasswordType属性的值?

时间:2018-03-13 00:38:14

标签: python sqlalchemy

我已经定义了User模型:

class User(BaseMixin, db.Model, DictSerializable):

    __tablename__ = 'user'

    email = db.Column(EmailType, nullable=False)
    username = db.Column(db.Unicode(255), nullable=False)
    password = db.Column(PasswordType(
        schemes=[
            'pbkdf2_sha512',
        ],
    ))

    def __init__(self, email, password):
        self.email = email
        self.username = email
        self.password = password

我想要做的就是在我创建__init__方法之前已经存在的用户通过flask shell(通过docker)设置密码。

我已经意识到我不能只做ol,

from project_name.models import db, User
user = User.query.first()
user.password = 'foo'
db.session.commit()

那么,任何人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

PasswordType的文档说它依赖于sqlalchemy_utils.force_auto_coercion在您定义模型之前运行:

from sqlalchemy_utils import force_auto_coercion

force_auto_coercion()

...

class User(db.Model):
    ...

一旦这样做,该值实际上会持续存在。