Odoo17 不再支持视图中的attrs和states
在Odoo 17中,不再支持在视图(View)中直接使用attrs
和states
。这是因为Odoo 17引入了新的视图引擎,它不再使用XML格式,而是转向使用更现代的JavaScript框架来定义用户界面。
如果你尝试在视图定义中使用attrs
或states
,你会遇到一个错误,提示这些属性或标签不被识别或者不再支持。
解决方法:
- 如果你需要为字段设置属性,你应该使用新的属性系统,例如在模型视图中使用
widget
属性来定义字段的行为。 - 对于状态和属性的动态变化,你应该使用JavaScript来控制。你可以通过创建自定义模块并在其中添加JavaScript控制代码来实现这一点。
例如,如果你想要在字段上设置一个特定的属性,你应该在视图定义中这样写:
<field name="your_field_name" widget="your_widget_class_name"/>
然后在JavaScript中,你可以使用Odoo的框架提供的API来动态改变这些属性。
odoo.define('your_module_name.your_widget_class_name', function (require) {
"use strict";
var FieldChar = require('web.BasicFieldChar');
var YourWidget = FieldChar.extend({
init: function (parent, options, params) {
this._super.apply(this, arguments);
// 你可以在这里设置属性或者绑定事件
},
// 其他方法
});
core.view_registry.add('your_widget_class_name', YourWidget);
return YourWidget;
});
请注意,这只是一个简化的例子,实际的实现可能需要根据你的具体需求来编写更复杂的逻辑。
评论已关闭