Odoo:如果没有auth,则找不到URL

时间:2017-08-02 16:57:40

标签: odoo-9

我有路由控制器:

@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.

我该如何解决?为什么路线不起作用?

2 个答案:

答案 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中。