Javascript Odoo 13:在仪表板视图中传递到窗口操作域的用户ID(uid)抛出JS错误,在仪表板视图之外工作正常
我试图在仪表板视图中显示已筛选记录的树状视图。我已经有了一个很好用的动作,就是这个Javascript Odoo 13:在仪表板视图中传递到窗口操作域的用户ID(uid)抛出JS错误,在仪表板视图之外工作正常,javascript,xml,odoo,Javascript,Xml,Odoo,我试图在仪表板视图中显示已筛选记录的树状视图。我已经有了一个很好用的动作,就是这个 # Basic action for vlabel.product <record id="action_product" model="ir.actoins.act_window"> <field name="name">Products</field> <field name="re
# Basic action for vlabel.product
<record id="action_product" model="ir.actoins.act_window">
<field name="name">Products</field>
<field name="res_model">vlabel.product</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('related_company.vlabel_person', '=', uid)]
</record>
#vlabel.product的基本操作
产品
弗拉贝尔产品公司
树
[('related_company.vlabel_person','=',uid)]
这非常适合此视图,仅显示相关公司(res.partner)的vlabel_人员(res.user)是当前登录用户(uid)的产品记录
#vlabel.product的树视图
产品
弗拉贝尔产品公司
现在,我创建了一个仪表板视图,它在没有域的情况下也可以正常工作,但在域的情况下会抛出此错误
Traceback:
PY_ensurepy@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:90:65
py.evaluate@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:207:8
py.evaluate@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:213:111
py.evaluate@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:215:99
py.eval@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:220:284
eval_domains/<@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:362:136
_.forEach@http://adriann-virtualbox:8069/web/content/265-b072167/web.assets_common.js:108:566
_.mixin/</_.prototype[name]@http://adriann-virtualbox:8069/web/content/265-b072167/web.assets_common.js:165:526
eval_domains@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:361:265
pyeval@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:377:24
_createController/<@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:2690:182
回溯:
派克_ensurepy@http://adriann virtualbox:8069/web/content/270-7a3e6e6/web.assets\u backend.js:90:65
皮耶。evaluate@http://adriann virtualbox:8069/web/content/270-7a3e6e6/web.assets\u backend.js:207:8
皮耶。evaluate@http://adriann virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:213:111
皮耶。evaluate@http://adriann virtualbox:8069/web/content/270-7a3e6e6/web.assets\u backend.js:215:99
皮耶。eval@http://adriann virtualbox:8069/web/content/270-7a3e6e6/web.assets\u backend.js:220:284
评估域/请显示开发者控制台日志。2020-11-12 09:10:03328 11523信息odoo5555 werkzeug:127.0.0.1---[12/Nov/2020 09:10:03]“POST/web/action/load HTTP/1.1”200-32 0.035 0.034 2020-11-12 09:10:03356 11523信息?werkzeug:127.0.0.1---[12/11/2020 09:10:03]“GET/web/static/src/xml/dialog.xml?debug=1605172203347 HTTP/1.1”200----2020-11-12 09:10:03375 11523信息?werkzeug:127.0.0.1---[12/Nov/2020 09:10:03]“GET/web/static/src/xml/crash_manager.xml?debug=1605172203360 HTTP/1.1”200----使用Chrome并按F12键,然后检查控制台中列出的错误。啊,我得到了它,嗯,我得到了“Uncaught”(承诺)错误:名称“uid”未定义。我发现它与uid有很大关系。但为什么在此处未定义它,而在其他操作中它未引发错误?出现此错误是因为uid
在上下文中不存在。传递给求值方法的上下文为空,而使用的是不存在错误的t定义uid
属性。您可以通过重写pycontext
函数并将uid设置为session.uid
(var session=require('web.session';)
)来修复错误。
Traceback:
PY_ensurepy@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:90:65
py.evaluate@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:207:8
py.evaluate@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:213:111
py.evaluate@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:215:99
py.eval@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:220:284
eval_domains/<@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:362:136
_.forEach@http://adriann-virtualbox:8069/web/content/265-b072167/web.assets_common.js:108:566
_.mixin/</_.prototype[name]@http://adriann-virtualbox:8069/web/content/265-b072167/web.assets_common.js:165:526
eval_domains@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:361:265
pyeval@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:377:24
_createController/<@http://adriann-virtualbox:8069/web/content/270-7a3e6e6/web.assets_backend.js:2690:182
# New Action for dashboard view (this one throws the error)
<record id="action_product_wip" model="ir.actions.act_window">
<field name="name">Products WIP</field>
<field name="res_model">vlabel.product</field>
<field name="domain">[('related_company.vlabel_person', '=', uid)]</field>
<field name="view_mode">tree,form</field>
</record>
# Dashboard view
<record id="dashboard_form_view" model="ir.ui.view">
<field name="name">Dashboard Form</field>
<field name="model">board.board</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Dashboard">
<board style="1-1">
<column>
<action
string="Products WIP"
name="%(vlabel.action_product_wip)d"/>
</column>
</board>
</form>
</field>
</record>
<record id="vlabel_dashboard" model="ir.actions.act_window">
<field name="name">Dashboard</field>
<field name="res_model">board.board</field>
<field name="view_mode">form</field>
<field name="usage">menu</field>
<field name="view_id" ref="dashboard_form_view"/>
</record>
<menuitem name="Dashboard" id="menu_dashboard"
parent="vlabel_menu_root" action="vlabel_dashboard"
sequence="1"/>