Odoo 将小部件添加到网站前端

作者:编程家 分类: xml 时间:2025-07-30

在使用 Odoo 平台开发网站时,我们经常需要将小部件添加到网站前端,以便展示特定的信息或功能。Odoo 提供了强大的小部件定制功能,使我们可以轻松地在网站上添加自定义的小部件。

要将小部件添加到网站前端,我们首先需要创建一个新的小部件类。这可以通过继承 `website.Widget` 类来实现。在该类中,我们可以定义小部件的属性和行为。

下面是一个简单的示例,展示了如何使用 Odoo 将小部件添加到网站前端。假设我们要在网站上显示一个简单的问候语,我们可以创建一个名为 `GreetingWidget` 的小部件类:

python

from odoo import fields, models

class GreetingWidget(models.AbstractModel):

_name = 'website.greeting.widget'

_description = 'Greeting Widget'

name = fields.Char('Name', required=True)

message = fields.Text('Message')

def get_greeting(self):

return 'Hello, ' + self.name + '! ' + self.message

在这个例子中,我们定义了一个 `GreetingWidget` 类,它具有一个名为 `name` 的必填字段和一个名为 `message` 的文本字段。我们还定义了一个名为 `get_greeting` 的方法,用于生成问候语。

接下来,我们需要创建一个网站页面,并在该页面上添加我们的小部件。在 Odoo 中,网站页面由模板定义。我们可以使用模板语言(HTML 和 XML)来创建并布局页面。

在我们的例子中,我们可以创建一个名为 `greeting_page.xml` 的模板文件,其中包含以下内容:

xml

在这个模板中,我们使用了 Bootstrap CSS 框架来创建一个简单的表单和展示问候语的区域。我们还使用了模板语言中的 `t-esc` 标签来呈现小部件生成的问候语。

最后,我们需要将模板和小部件关联并将它们添加到网站中。这可以通过创建一个名为 `ir.ui.view` 的记录来完成。我们可以在网站模块的数据文件中添加以下记录:

xml

greeting.page.view

website.page