如何在Odoo网站中为HTML元素的data-email属性赋值动态用户邮箱?
Odoo模板动态设置data-email属性解决方案
- 你之前用
t-att-data-email="request.env.user.paretner_id.email"报错,核心原因是拼写错误:把partner_id写成了paretner_id,纠正拼写后就能正常解析表达式了。 - 直接写
data-email="request.env.user.partner_id.email"无效,是因为普通HTML属性不会被Odoo的QWeb模板解析,只会原样传递字符串。
正确的写法如下,同时优化了data-authenticated的动态判断(避免硬编码):
<div id="customer-identification-html-element" t-att-data-authenticated="request.env.user != request.website.user_id" t-att-data-email="request.env.user.partner_id.email if request.env.user.partner_id else ''" > </div>
补充说明:
t-att-属性名是QWeb模板的动态属性绑定语法,会自动计算右侧Python表达式的结果并赋值给对应属性- 加入
if request.env.user.partner_id else ''是为了兼容用户未关联合作伙伴的场景,避免模板渲染报错 request.website.user_id是Odoo网站的公共匿名用户,用它判断用户是否已登录,让data-authenticated属性值更准确
内容的提问来源于stack exchange,提问作者Andrea
相关产品推荐
相关产品推荐

