我有路由控制器:
@http.route(['/report/yandex_phone_report'], type='http', auth="public", website=True)
def yandex_phone_report(self, **kw):
page_data = []
return http.request.render(self._report_index_page_template, {
'page_items': page_data
如果我登录的URL / report / yandex_phone_report显示正常。 如果我没有在URL / report / yandex_phone_report中返回404:
2017-08-02 16:46:09,400 5942 INFO ? werkzeug: 127.0.0.1 - - [02/Aug/2017 16:46:09] "GET /report/yandex_phone_report HTTP/1.1" 404 -
浏览器正在显示:
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.
我该如何解决?为什么路线不起作用?
答案 0 :(得分:0)
之所以发生这种情况,是因为它不知道要在哪个数据库中查找该URL。
如果查看您提供的日志,您会看到在INFO之后,您有吗?
2017-08-02 16:46:09,400 5942 INFO ? <- THIS ONE
如果它知道应该使用哪个数据库,那么你会看到一个数据库名称而不是?
要测试它,您可以先致电:http://localhost:PORT/web?db=YOUR_DB_NAME
这将在浏览器上为给定数据库设置会话。
然后,调用http://localhost:PORT/report/yandex_phone_report即可。
在生产环境中,您需要将其配置为从某个位置获取数据库名称...例如,从URL(http://dbname.example.com:PORT)。
答案 1 :(得分:0)
在多数据库环境中,您可以拥有auth='none'
,但是您的模块也需要添加到odoo.conf server_wide_modules
中
这样,将添加路线。至少在Odoo 13中。