javascript - 使用 execjs 在 odoo 中创建警报框
问题描述
我正在尝试创建一个计划的警报框,以在特定日期提醒用户。所以我安装execjs
并创建了这个方法:
import execjs
class Project(models.Model):
_inherit = 'project.project'
@api.multi
def alert(self):
js = """ alert("Hello World!!") """
execjs.eval(js)
但是当我运行这个方法时,它会出现这个错误:
2018-05-09 09:00:49,302 6508 ERROR erp_invoicefr odoo.addons.base.ir.ir_cron: Call of self.env[u'project.project'].alert(*()) failed in Job #8
Traceback (most recent call last):
File "D:\Projet\201802_invoicefr\odoo\addons\base\ir\ir_cron.py", line 126, in _callback
getattr(model, method_name)(*args)
File "D:\Projet\201802_invoicefr\invoicefr_addons\invoicefr_project\models\project_project.py", line 90, in alert
execjs.eval(js)
File "C:\Python27\lib\site-packages\execjs\__init__.py", line 51, in eval
return get().eval(source, cwd)
File "C:\Python27\lib\site-packages\execjs\_abstract_runtime.py", line 25, in eval
return self.compile('', cwd=cwd).eval(source)
File "C:\Python27\lib\site-packages\execjs\_abstract_runtime_context.py", line 27, in eval
return self._eval(source)
File "C:\Python27\lib\site-packages\execjs\_external_runtime.py", line 78, in _eval
return self.exec_(code)
File "C:\Python27\lib\site-packages\execjs\_abstract_runtime_context.py", line 18, in exec_
return self._exec_(source)
File "C:\Python27\lib\site-packages\execjs\_external_runtime.py", line 88, in _exec_
return self._extract_result(output)
File "C:\Python27\lib\site-packages\execjs\_external_runtime.py", line 167, in _extract_result
raise ProgramError(value)
ProgramError: ReferenceError: alert is not defined
解决方案
推荐阅读
- android - 自定义视图应该如何处理最大宽度?
- php - 从查询字符串中添加、更改和删除 GET 参数
- apache-spark - spark:HDFS 块 vs 集群核心 vs rdd 分区
- amazon-web-services - 在凭据文件中设置默认配置文件
- python - 为什么 Python 内存使用量会在一段时间后下降?
- reactjs - 如何使用 Enzyme 在 react-leaflet 自定义子组件中测试地图参考?
- azure-devops - Azure DevOps 找不到我的 azure-pipelines.yaml 文件
- sql - 获取物化视图的约束和索引
- database - 如何绘制数据库操作图(不是结构图)
- jquery - 在启用 AJAX 时禁用单击重力表单的提交按钮?