使用 javascript 从网站访问模型字段 - Odoo v9 社区

Access model fields from website with javascript - Odoo v9 community

我想知道,如果我添加一个按钮来从我的 Odoo 模块中的 website 页面发送电子邮件。

如果是 "pure" javascript,像这样:

<textarea id="myText">
Lorem ipsum...
</textarea>
<button onclick="sendMail(); return false">Send</button>
function sendMail() {
var link = "mailto:me@example.com"
         + "?cc=myCCaddress@example.com"
         + "&subject=" + escape("This is my subject")
         + "&body=" + escape(document.getElementById('myText').value)
;

window.location.href = link;
}

假设电子邮件,应该是我在 res_company 上为此设置的一个字段,比方说 loan_email,仅作为示例。

有什么方法可以让我从 Odoo 网站页面上的 javascript 访问该字段?

我的意思是,不是像这个例子那样只发送电子邮件,而是从 res_company 上设置的电子邮件字段实际发送它?

希望我已经解释清楚了,如果您有任何疑问,请告诉我。

是的,您可以使用 javascript 访问任何模型的任何字段。您只需要为此插入一些代码。我已经在 POS 中完成了这件事。所以我知道怎么做了。

您必须在 js 文件的开头插入此行:

odoo.define('your model name'  function (require) {"use strict";//your code});

在访问字段之后,您必须在 xml 中为其创建模板并在您的 js 文件中调用该模板。确保模板包含您的 .py 文件中的字段,之后调用该模板如下:

var varnm = jsfile_which_used_in_frontend.extend({

template: 'templatename',
action: function(){
method_or_action({'field_name'});
},
 });//end of code

此外,如果你想在你的js文件中使用我在这里使用的另一个js文件的功能(jsfile_which_used_in_frontend),那么你可以这样做:

create a variable like this:

var varname=require('model name')

如果您的文件在另一个模型中并且您想要访问它,那么您必须这样做而不是之前的变量创建行:

var varnm=require('foldername.filename')

如果您对此有任何疑问,请随时提出,如果您觉得这个答案有帮助,请投票或使其成为有效答案。

谢谢