Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从网站访问模型字段-OdooV9社区_Javascript_Python_Odoo_Odoo 9 - Fatal编程技术网

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

使用javascript从网站访问模型字段-OdooV9社区,javascript,python,odoo,odoo-9,Javascript,Python,Odoo,Odoo 9,我想知道,我是否在我的Odoo模块中添加了一个从网站页面发送电子邮件的按钮 如果它是纯javascript,则如下所示: <textarea id="myText"> Lorem ipsum... </textarea> <button onclick="sendMail(); return false">Send</button> function sendMail() { var link = "mailto:me@example.com"

我想知道,我是否在我的Odoo模块中添加了一个从网站页面发送电子邮件的按钮

如果它是纯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;
}
var varnm = jsfile_which_used_in_frontend.extend({

template: 'templatename',
action: function(){
method_or_action({'field_name'});
},
 });//end of code
假设电子邮件应该是我在res_company上为此设置的一个字段,比方说loan_电子邮件

有没有办法从Odoo网站页面上的javascript访问该字段

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


我希望我已经解释过了,如果您有疑问,请告诉我。

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

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

odoo.define('your model name'  function (require) {"use strict";//your code});
在访问该字段之后,您必须用xml为该字段创建模板,并在js文件中调用该模板。确保模板包含.py文件中用于调用该模板的字段如下所示:

<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;
}
var varnm = jsfile_which_used_in_frontend.extend({

template: 'templatename',
action: function(){
method_or_action({'field_name'});
},
 });//end of code
另外,如果您想使用另一个js文件的功能,我在这里使用了jsfile_,在您的js文件的前端使用了_,那么您可以这样做:

<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;
}
var varnm = jsfile_which_used_in_frontend.extend({

template: 'templatename',
action: function(){
method_or_action({'field_name'});
},
 });//end of code
创建一个如下所示的变量:

<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;
}
var varnm = jsfile_which_used_in_frontend.extend({

template: 'templatename',
action: function(){
method_or_action({'field_name'});
},
 });//end of code
如果您的文件位于另一个模型中,并且您希望访问该模型,则必须按照以下方式执行操作,而不是使用前面的变量创建行:

var varnm=require('foldername.filename')
如果您对此有任何疑问,请随时提问,如果您觉得此答案有帮助,请投票表决或使其成为有效答案

多谢各位