如何知道在odoo中从哪个class调用了另一个class的方法
how to know from which class a method of another class is called in odoo
我有 2 个模型
- 1: example.orderline
- 2: product.product
它们是分开的 类
example.orderline 中有一个 many2one 字段 "stock"
stock=fields.Many2one("product.product","Product")
我想为字段 "stock" 覆盖模型 "product.product" 的 name_get
方法
我成功了:
def name_get(self):
result = []
for record in self:
default_code = record.default_code
result.append((record.id, default_code))
return result
但以上也适用于销售订单和采购订单。
如何命名 get 方法仅适用于 example.orderline 模型?
您可以在 example.orderline
模型视图端使用 context
属性来处理上述情况。
例如:
<field name="stock" context="{'display_my_name': True}"/>
现在检查 name_get()
方法中的上下文值。如果我们找到我们的上下文键,执行我们的自定义逻辑,否则 return super.
例如:
def name_get(self):
if 'display_my_name' in self._context and self._context.get('display_my_name')
result = []
for record in self:
default_code = record.default_code
result.append((record.id, default_code))
return result
else:
return super(YourClass, self).name_get()
这样就不会干扰其他form view字段值的显示
我有 2 个模型
- 1: example.orderline
- 2: product.product
它们是分开的 类
example.orderline 中有一个 many2one 字段 "stock" stock=fields.Many2one("product.product","Product")
我想为字段 "stock" 覆盖模型 "product.product" 的 name_get
方法
我成功了:
def name_get(self):
result = []
for record in self:
default_code = record.default_code
result.append((record.id, default_code))
return result
但以上也适用于销售订单和采购订单。 如何命名 get 方法仅适用于 example.orderline 模型?
您可以在 example.orderline
模型视图端使用 context
属性来处理上述情况。
例如:
<field name="stock" context="{'display_my_name': True}"/>
现在检查 name_get()
方法中的上下文值。如果我们找到我们的上下文键,执行我们的自定义逻辑,否则 return super.
例如:
def name_get(self):
if 'display_my_name' in self._context and self._context.get('display_my_name')
result = []
for record in self:
default_code = record.default_code
result.append((record.id, default_code))
return result
else:
return super(YourClass, self).name_get()
这样就不会干扰其他form view字段值的显示