我想在models.js文件中扩展JS模块 PosModel (模型是point_of_sale)。这是因为我想在下面添加一个字段:
var pattern = "(?:[0-9]+/\w+)[0-9]";
var matcher = new Regex(pattern);
var result = matcher.Matches(yourEntireSetOfLinesInAString);
我已经在静态>下向我的模块添加了一个新的js文件src> js> models_extend.js 并将此文件添加到xml模板中,如下所示:
models: [
...
model: 'res.partner',
fields: ['name','street',..,'MY_NEW_FIELD'],
这是在我的models_extend.js文件中:
<template id="assets_backend" name="dewieuw assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/dewieuw/static/src/js/models_extend.js"></script>
</xpath>
</template>
出于某种原因,永远不会添加新字段,我认为这是因为他没有使用我的模块扩展模块?任何想法请。
答案 0 :(得分:1)
您的JS定义必须包含要加载的自定义模块名称。
如果您查看official docs,您会看到您的JS必须声明您的模块范围。
在Odoo web中,模块被声明为在全局上设置的函数 openerp变量。函数的名称必须与插件相同 (在这种情况下是oepetstore)所以框架可以找到它,并且 自动初始化它。
因此,如果您的模块名为oepetstore
,则可以得到如下内容:
openerp.oepetstore = function(instance, local) {
在你的情况下,我猜它会是openerp.dewieuw
。
提示:执行此操作,只需添加console.log
或alert('foo')
即可确保其已加载。