我尝试调用sort()方法和sorted()函数,但是它不起作用。
调用sorted()函数:
<t t-set='data' t-value="{4: 'd', 3: 'c', 'b': 2, 'a': 1}"/>
<t t-set="list_key" t-value="sorted(list(data.keys()))"/>
<t t-esc="list_key"/>
但是它给了我这样的错误:
渲染AST时出错 TypeError:“ NoneType”对象不可调用
调用sort()方法:
<t t-set='data' t-value="{4: 'd', 3: 'c', 'b': 2, 'a': 1}"/>
<t t-set="list_key" t-value="list(data.keys()).sort()"/>
<t t-esc="list_key"/>
它没有错误,但是当我尝试访问list_key的一个元素时,出现此错误:
渲染AST时出错 TypeError:“ NoneType”对象不可下标
你能帮我吗?谢谢你。
答案 0 :(得分:1)
我不知道您为什么需要在模型定义内创建排序方法,因为sorted
方法已经提供了可应用于记录集的方法,也可以在qweb中使用。例如,此行摘自odoo社区代码:
<t t-foreach="move.move_line_ids.sorted(key=lambda ml: ml.location_id.id)" t-as="ml">
有关odoo ORM sorted
方法的更多信息,您可以阅读官方的documentation。