odoo - 更改不起作用
问题描述
我在 sale.order.line 中创建了一个新字段
_columns = {
'od_deivered_quantity':fields.float('Delivered
Quantity',trackvisibility = onchange,readonly = False)
}
然后我编写了以下 onchange 函数:
@api.depends('product_uom_qty')
def onchange_delivered_order(self, cr, uid, ids,context=None):
res = {}
delivered_qty = self.product_uom_qty
return {'value':{'od_delivered_qty':delivered_qty}}
XML代码如下:
<xpath expr="//field[@name='order_line']/tree//field[@name='product_uom_qty']" position="after">
<field name = "od_delivered_qty"/>
</xpath>
但它不起作用
解决方案
抱歉,您的代码有点混乱和错误;此外,您似乎正在混合旧的 API 样式(v8 之前),如在字段声明期间和新的,用于 onchange 方法。
让我们回顾一下,我想知道我是否理解您的要求:您需要一个od_deivered_quantity
由product_uom_qty
. 那正确吗?
我建议类似以下块(我将使用新的 API 样式):
od_deivered_quantity = fields.Float(
"Delivered Quantity", track_visibility="onchange", readonly=False
)
@api.onchange('product_uom_qty')
def onchange_delivered_order(self):
# if isinstance(self.product_uom_qty, bool):
# return
delivered_qty = self.product_uom_qty
self.od_delivered_qty = delivered_qty
请尝试检查此 onchange 方法的行为,当它在您的模块中启动并运行时:我在其中添加了一个带注释的布尔检查,以防万一(由于任何尴尬的原因)该方法将被调用,并False
在 product_uom_qty 上传递一个值.
谈到视图,您的 XML 可能没问题,因为采用新的 API 样式https://www.odoo.com/documentation/8.0/reference/orm.html#onchange-updating-ui-on-the-fly
计算字段和新 API onchanges 都由客户端自动调用,而无需将它们添加到视图中
让我知道它是否会正常工作,否则您会遇到任何问题。
推荐阅读
- ruby - 如何为存储在 s3 存储桶中的文件生成预览 url?
- c# - 如何从 StringValue 属性的值解析枚举
- xml - 是什么意思
- javascript - D3:从数组中获取值
- python - 模块 'shapely' 没有属性 'geometry' 错误
- html - jsPDF html方法总是失败
- javascript - 在 Qualtrics 中写入和读取 Cookie 的值
- python - 如何在 Instagram 上的 chrome 移动视图中获取 .click(),而不是右键单击 - [Instagram 上的 Selenium]
- microsoft-teams - 微软流程自适应卡在团队中提及团队用户
- html - 如何禁止 robots.txt 中的特定子文件夹?