Qweb:如何在Qweb上使用方法sort()或函数sorted()?

时间:2019-03-17 10:24:45

标签: odoo qweb


我尝试调用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”对象不可下标

你能帮我吗?谢谢你。

1 个答案:

答案 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