Masonite - TypeError:无法转换' Undefined'隐含地反对str

时间:2018-05-03 23:23:08

标签: python frameworks masonite

我使用Masonite框架,在Masonite 1.6中运行craft auth命令后注册用户时出错。堆栈跟踪的结尾如下所示:

{% for i, line in enumerate(open(stack.filename)) %}

TypeError: Can't convert 'Undefined' object to str implicitly

1 个答案:

答案 0 :(得分:1)

这已在Masonite 1.6.3中修复。问题是,在使用bcrypt进行哈希处理后,密码没有被解码回字符串。显然MySQL在插入数据库之前将字节转换为字符串,但Postgres和SQLite没有。

升级

修复方法是通过运行来升级Masonite:

pip install --upgrade -r requirements.txt

升级到最新版本(因此craft auth不会再次创建带有此错误的控制器)

修补程序

并通过将RegisterController中的〜第20行更改为:

来修补当前应用程序
password = bytes(bcrypt.hashpw(
    bytes(Request.input('password'), 'utf-8'), bcrypt.gensalt()
)).decode('utf-8')