我正在尝试使用 cerberus 构建递归模式,但似乎错过了它应该如何工作的重点。有人可以帮我吗?
在 repo 中的文档和旧问题中,解释了处理递归的方法是使用模式注册表来创建自引用模式,否则我们会达到递归深度限制。
但是,尝试一些非常基本的东西会导致 TypeError。
请在文档中获得模式递归示例会很棒!一旦我了解发生了什么,我很乐意帮助提交一份。
cerberus.schema_registry.add(
'user_schema',
{
'uid': {
'type': 'integer'
},
'next': {
'type': 'list',
'schema': 'user_schema'
}
}
)
schema = {'sender': {'schema': 'user_schema'}}
v = cerberus.Validator(schema=schema)
v.validate({
'sender': {
'uid': 1,
'next': [
{
'uid': 1,
}
]
}
})
运行上述导致以下未处理的异常:
TypeError: argument of type 'NoneType' is not iterable
非常感谢您的帮助!