如何在 Odoo 16 中覆盖现有控制器

Odoo 中使用控制器来开发前端模块。后端模块链接到控制器。我们可以通过使用覆盖属性对基类进行修改来修改编程逻辑或向现有程序添加新逻辑。

要将控制器添加到模块,第一步,您必须为控制器创建一个单独的目录。在此目录中,应将一个 init 文件和包含控制器方法的所有 python 文件添加到 init 文件中。然后,将此目录添加到模块的 init 文件中。


 

要覆盖控制器,我们必须首先构造一个定义现有函数的子类。然后,我们必须从这个控制器中选择一个要覆盖的函数。

例如,我们可以选择一个 Carousel 函数并覆盖它。
 

def _get_products_recently_viewed(self):
   """Returns list of recently viewed products according to current user."""
   max_number_of_product_for_carousel = 12
   visitor = request.env[
       'website.visitor']._get_visitor_from_request()
   if visitor:
       excluded_products = request.website.sale_get_order().mapped(
           'order_line.product_id.id')
       products = request.env['website.track'].sudo().read_group(
           [('visitor_id', '=', visitor.id),
            ('product_id', '!=', False),
            ('product_id.website_published', '=', True),
    

相关推荐

  1. 如何 Odoo 16 设置和使用系统参数

    2024-07-21 17:42:03       24 阅读
  2. 如何启动odoologging 日志配置

    2024-07-21 17:42:03       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 17:42:03       101 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 17:42:03       109 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 17:42:03       87 阅读
  4. Python语言-面向对象

    2024-07-21 17:42:03       96 阅读

热门阅读

  1. 文本溢出显示省略号

    2024-07-21 17:42:03       22 阅读
  2. 简单回顾C++常用的数据类型

    2024-07-21 17:42:03       25 阅读
  3. https和http有哪些区别?

    2024-07-21 17:42:03       23 阅读
  4. stable diffusion Sampler 的选择

    2024-07-21 17:42:03       25 阅读
  5. 读书记 | 《李光耀观天下》

    2024-07-21 17:42:03       25 阅读
  6. resultMap

    2024-07-21 17:42:03       20 阅读
  7. Python编程防止计算机休眠,保持唤醒状态

    2024-07-21 17:42:03       22 阅读
  8. 力扣题解(盈利计划)

    2024-07-21 17:42:03       21 阅读
  9. Mysql在linux安装报错

    2024-07-21 17:42:03       23 阅读
  10. 大型网站核心架构要素

    2024-07-21 17:42:03       25 阅读