使用传递给处理程序的参数 - Odoo

Consuming parameters passed to your handlers - Odoo

早上好,我在 odoo v.12 中使用 http.Controllers,我想通过 url 传递 id 以获得以下内容:

http://localhost:8069/my_library/book_details/1

我使用的代码是:

from odoo import http

class Book(http.Controller):
    @http.route('/my_library/book_details/<model("library.book"):book>', type='http', auth='none')
    def book_details_in_path (self, book):
        print (book)

但是我收到以下错误消息:

psycopg2.ProgrammingError: can't adapt type 'RequestUID'

我做错了什么?

非常感谢。

如果您将 authentication method 的类型定义为 none,请求代码将没有任何访问数据库的工具,也没有任何指示当前数据库或当前用户的配置。

在路由定义中,您调用了 model,它在给定 ID 时直接提供记录,而使用的身份验证方法不允许这样做。

要避免此问题,只需更改身份验证方法即可。