gpt4 book ai didi

Python (RML) - 创建一个列表然后将其元素连接到字符串中?

转载 作者:行者123 更新时间:2023-11-28 18:44:53 26 4
gpt4 key购买 nike

我正在尝试从 one2many 行字段在 RML 报告中生成一个列表。有 sale.order 类和 sale.order.line(这个与另一个存储税名的类相关)。

所以在 rml 报告中我尝试了这样的事情:

[[ ', '.join(list.append(x.name) for x in l.tax_id) ]]

其中 l 等价于 order_line(此字段与 sale.order.line 类相关),tax_id 与税表相关,我需要在其中获取所有税名和将其附加到字符串。在 rml 中,我不能简单地定义列表,然后尝试一些 for 来附加它,因为它会给我不正确的语法错误。

尝试该行后,我得到了这个错误:

TypeError: descriptor 'append' requires a 'list' object but received a 'unicode'

然后我尝试用 list() 包装 x.name,然后我得到了这个错误:

TypeError: append() takes exactly one argument (0 given)

我也尝试过使用 lambda,但也无法从中创建列表,它会输出生成器对象,如果我用 list() 包装 lambda 表达式,那么它会输出函数对象.很明显我做错了什么,但我不知道如何简单地获取一个列表,然后我可以从中创建字符串?

更新我也试过这个:

[[ ', '.join(map(lambda x: x.name, l.tax_id)) ]]

但它仅适用于一个order line。如果不止一个,那么它会显示最后一行结果(忘记之前的结果)。所以它不创建列表是一回事。

示例数据(已简化)

税表

|id|name|
1 | tax1
2 | tax2
3 | tax3

Sale Order(order_line as one2many 我刚才是这样显示的)

|id|order_line|
|1 |3,4|

销售订单行

|id|tax_id|
|3 |1,2
|4 |2,3

因此,为此类销售订单提供带有这些订单行和税费的示例,它应该输出:

tax1, tax2, tax3(不应多次输出相同的税名)

目前它的输出是这样的:tax2, tax3

最佳答案

尝试 [[ ', '.join(list(set(tax.name for line in o.order_line for tax in line.tax_id if tax))) ]]

关于Python (RML) - 创建一个列表然后将其元素连接到字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21724189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com