在系统python后端找不到外部ID,在odoo框架中渲染模板

External ID not found in the system python backend , render template in odoo framework

提问人:Anabeil 提问时间:8/4/2023 更新时间:8/5/2023 访问量:24

问:

我正在Odoo后端工作,并尝试使控制器路由网页,但收到此错误:

文件“C:\Users\urr\server\flectra\http.py”,第 316 行,_handle_exception 从new_cause中提升 exception.with_traceback(None) ValueError:在系统中找不到外部 ID:demp_app.demo_login - - - 2023-08-04 07:41:50,753 1956 INFO 演示 werkzeug: 127.0.0.1 - - [04/Aug/2023 07:41:50] “GET /service-worker.js HTTP/1.1” 200 - 232 0.109 0.485

我写这个控制器:

from flectra import  http
from flectra.http import request

class demo_page (http.Controller):
    @http.route('/demo',auth='public',website=True)
    def demo_page(self,**kw):
       # return 'aaaaaaaaaaaaa'
        return request.render("demp_app.demo_login" , {})

这是我的模板:

<flectra>
<data>
<template id='demo_login'>
<t t-call='website_template'>

<div class='container'>
eng. ahmed 
</div>

</t>
<data>
</template>
</flectra>

和她我的 manifest.py 文件:

# -*- coding: utf-8 -*-
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.

{
    'name': 'demo_app',
    'category': 'Hidden',
    'version': '1.0',
    'description':
        """
            this module is for demo register app 
        """,
    'depends': ['base'],
    'data': [
        'views/demo_template.xml',
    ],
    'qweb': [

    ],
    'bootstrap': True,  # load translations for login screen,
    'license': 'LGPL-3',
}

自定义应用程序目录:

enter image description here

我的模板没有模型文件,因为它只是为了显示简单的文本, 返回行包括app_name和函数名称

Python 模板 路由 odoo flectra

评论


答:

0赞 aekis.dev 8/5/2023 #1

确保您的模块已安装,并在视图菜单中搜索模板以查看它是否正确加载。也许您需要再次运行模块的更新

我还注意到标签没有正确关闭并且位置也不好。需要这样data

<flectra>
<data>
  <template id='demo_login'>
    <t t-call='website_template'>
      <div class='container'>
        eng. ahmed 
      </div>
    </t>
  </template>
</data>
</flectra>

评论

0赞 Anabeil 8/12/2023
我检查了您的所有要点,但仍然收到此错误
0赞 aekis.dev 8/12/2023
你能分享这个模块,以便我测试它吗?
0赞 Anabeil 8/12/2023
如何共享所有文件?
0赞 aekis.dev 8/12/2023
您可以使用 GitHub 存储库并将链接粘贴到此处