onchange - 关于odoo8中onchange方法返回域或警告
问题描述
- 我尝试遵循 odoo8 官方示例,但不适用于我:
class TestMove(models.Model):
_name = 'test.move'
_description = 'Stock Requisition Return'
num1 = fields.Float(string='num1')
num_float = fields.Float(string='num_float', compute="_compute_num_float", store=True)
num2 = fields.Integer(string='num2')
age = fields.Integer(compute='_compute_age')
age2 =fields.Integer(compute='_compute_age2', store=True)
now_list_price = fields.Float(
string='Now List Price', help='Now List Price', digits=(10, 10))
product_id = fields.Many2one(comodel_name='product.product')
......
@api.one
@api.onchange('num1')
def _onchange_num2(self):
now_ = self.num1 + 1
_logger.info('num2 is:%s', now_)
self.update({'num2': now_})
return {
'domain': {'product_id': [('id', 'in', [now_])]},
'warning': {'title': "Warning", 'message': "What is this?"}
}
class ProductProduct(models.Model):
_name = 'product.product'
_description = 'Product'
_rec_name = 'name'
name = fields.Char()
price_unit = fields.Float(default=Decimal('13.14'))
num2 发生了变化,但没有返回域和警告;请有任何建议。提前致谢。
解决方案
该问题是由@api.one
装饰器引起的,只需将其删除,onchange 方法应该可以正常工作。
推荐阅读
- xml - 使用 XML::Simple 将 XML 解析为散列时如何保留前导空格
- c# - 实体配置问题 INSERT 语句与 FOREIGN KEY 约束冲突
- c# - 如何使 appsettings.json 配置在项目而不是 bin 文件夹中?
- dataframe - 如何为 DataFrame 中的每一行返回一个 DataFrame 并将结果连接到一个 DataFrame 中?
- sql - SQL:跨两列的唯一值
- go - 声明函数类型的方式有什么区别?
- python - Django 错误 TypeError: __init__() 接受 1 个位置参数,但给出了 2 个
- python - 如何使用同时支持简单类型和属性的字段声明协议?
- apache-atlas - Apache Atlas 中两种不同类型之间的名称关系链接
- python-3.x - 使用 Pandas 更改 CSV 中列标题的一个元素