python - 有史以来最没有帮助的错误 : TypeError: unhashable type: 'list'

标签 python django testing fsm

我刚刚重写了大量与 40 多个状态 FSM 有关的 Django 代码。对于所涉及的三个模型中的每一个,都有很多 STATE_DEFINITIONS = "4.7.1",并且需要进行大量检查当前状态是否 == SOME_STATE 或处于 [ONE_STATE, OR_ANOTHER]。

我只有一个地方使用字典。假设其中一个模型看起来像:

class OneModel(models.Model):
    STATUS_ONE = "1.0"
    STATUS_TWO = "2.0"

    STATUS_MAPPING = {
              STATUS_ONE:OtherModel.STATUS_X,
              STATUS_TWO:OtherModels.STATUS_Y,
    }

所有键都是唯一的字符串,如果我从代码中删除它,也会发生同样的事情。

当我 python manage.py test my_app我收到的错误消息可能是有史以来最没有帮助的错误消息: TypeError: unhashable type: 'list' 就是这样,没有发生的地方,没有上下文。有没有人对如何调试此问题有任何建议,而无需逐行查看文件中的 800+ 行?

最佳答案

尝试传递 --traceback 选项。

关于python - 有史以来最没有帮助的错误 : TypeError: unhashable type: 'list' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20390510/

相关文章:

python - 如何将对象添加到查询集中?

django-allauth 在有/没有验证的情况下更改用户电子邮件

testing - 有没有办法使用 RIDE 在远程机器上运行机器人框架测试?

php - Symfony 4 中的功能测试事件和订阅者

python - 按日期获取子集数据框

python - Numpy 中坐标距离的向量化

Django 表单初始化问题 - 如何在父类(super class)中设置本地化?

python - 更新 django 数据库以反射(reflect)现有模型的变化

ruby-on-rails-3 - Rails - 更改了表名,现在测试不会运行

python - 在文件中写入了一些变量名,需要使用 python 将其替换为新生成的随机值?