Python 3.x 在odoo数据模板内调用qweb模板
我正试图使登录和注册的OTP服务。因此,我为otp服务制作了一个模块,该模块运行良好。但在这里,对于UI,我制作了一个模板,应该在登录页面内调用该模板,以显示otp框和otp发送按钮。请参见下面的samplae代码:Python 3.x 在odoo数据模板内调用qweb模板,python-3.x,odoo,odoo-11,odoo-12,Python 3.x,Odoo,Odoo 11,Odoo 12,我正试图使登录和注册的OTP服务。因此,我为otp服务制作了一个模块,该模块运行良好。但在这里,对于UI,我制作了一个模板,应该在登录页面内调用该模板,以显示otp框和otp发送按钮。请参见下面的samplae代码: <templates xml:space="preserve"> <div name="otp_service" t-name="bulk_sms_otp_service.otp_service"
<templates xml:space="preserve">
<div name="otp_service" t-name="bulk_sms_otp_service.otp_service">
<h1>Hello world</h1>
</div>
</templates>
我不知道我的代码出了什么问题,或者我错了。请帮助我解决此问题。您可以通过以下网址阅读:
在这种情况下,模板存储在数据库中(作为视图)
您可以推断某些qweb模板未存储在数据库中
您还可以在文档中阅读,在web客户端启动时,将加载每个模块清单中qweb条目中列出的文件中定义的模板
当odoo处理
custom\u login
模板时,它将尝试将bulk\u sms\u otp\u服务.otp\u服务templateview\u id
(从ir.model.data
)检索到相应的模板,它将失败,因为custom\u login
模板未存储在数据库中(在ir.ui.view
).嘿,有什么办法可以做指令之类的事情吗?无论何时调用指令,它都会调用相关的javascript。就像我的指令是otp now一样,如果调用
,它将呈现otp模板。还有任何方法可以在qweb模板中呈现自定义视图类型或小部件。显然,在网站内部,不是在odoo表单视图或其他视图中。您可以创建一个,将模板与之关联,然后实例化并将其插入DOM,或者呈现模板,然后将结果附加到元素中,您可以在
<odoo>
<template id="custom_login" name="Custom login" inherit_id="web.login">
<xpath expr="//p[hasclass('alert-success')]" position="after">
<t t-call="bulk_sms_otp_service.otp_service"/>
</xpath>
</template>
</odoo>
External id "bulk_sms_otp_service.otp_service" not found