【问题标题】:Masonite - TypeError: Can't convert 'Undefined' object to str implicitlyMasonite - TypeError:无法将“未定义”对象隐式转换为 str
【发布时间】:2018-10-14 08:36:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: python frameworks masonite


    【解决方案1】:

    这已在 Masonite 1.6.3 中修复。问题是存在一个错误,密码在使用 bcrypt 散列后没有被解码回字符串。显然 MySQL 在插入数据库之前将字节转换为字符串,但 Postgres 和 SQLite 没有。

    升级

    修复方法是通过运行以下命令升级 Masonite:

    pip install --upgrade -r requirements.txt

    升级到最新版本(所以craft auth 不会再创建一个有这个错误的控制器)

    补丁

    并通过将 RegisterController 中的 ~line 20 更改为:

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

    【讨论】:

      猜你喜欢
      • 2017-08-31
      • 2012-11-19
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 2018-09-12
      • 2018-12-07
      相关资源
      最近更新 更多