如何从 model data.mesin.produksi 显示看板视图到 notebook 页面 model snap.qc

如何从 model data.mesin.produksi 显示看板视图到 notebook 页面 model snap.qc

如何从 model data.mesin.produksi 显示看板视图到 notebook 页面 model snap.qc

在python中,我们经常需要从一个模型中获取数据,并将其展示在另一个模型的笔记本页面上。本文将详细介绍如何从 model data.mesin.produksi 中获取数据,并将其显示在 model snap.qc 的笔记本页面上。

1. 导入必要的库和模块

首先,我们需要导入一些必要的库和模块,以便于后续的操作。具体的导入语句如下所示:

from odoo import models, fields, api

这里我们导入了 odoo 的核心库 modelsfieldsapi

2. 创建模型 snap.qc

接下来,我们需要创建一个模型 snap.qc,用于展示来自 data.mesin.produksi 的看板视图。具体的模型代码如下所示:

class SnapQC(models.Model):
    _name = 'snap.qc'

    name = fields.Char('Name')
    ...

在这个模型中,我们定义了一个字段 name,用于展示 data.mesin.produksi 中的数据。

3. 获取 data.mesin.produksi 中的数据

我们需要在 snap.qc 模型中添加一个方法,以便从 data.mesin.produksi 中获取数据。具体的代码如下所示:

class SnapQC(models.Model):
    ...

    def get_data_from_mesin_produksi(self):
        produksi_model = self.env['data.mesin.produksi']
        produksi_records = produksi_model.search([])
        for record in produksi_records:
            self.create({'name': record.name, ...})

在这个方法中,我们首先通过 self.env['data.mesin.produksi'] 获取到 data.mesin.produksi 的模型。然后我们使用 search([]) 方法获取到所有的记录。接着,我们使用 create() 方法将 data.mesin.produksi 中的数据创建到 snap.qc 模型。

4. 显示看板视图到笔记本页面

最后,我们需要在 snap.qc 的笔记本页面上显示看板视图。具体的代码如下所示:

class SnapQC(models.Model):
    ...

    @api.model
    def fields_view_get(self, view_id=None, view_type='kanban', toolbar=False, submenu=False):
        result = super(SnapQC, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
        if view_type == 'kanban':
            kanban_template = self.env.ref('your_module.kanban_template')
            result['arch'] = kanban_template.render({'records': self})
        return result

在这个方法中,我们首先通过 self.env.ref('your_module.kanban_template') 获取到看板视图的模板。然后,我们使用 render() 方法将 snap.qc 模型的记录传递给看板视图的模板,并将结果赋值给 result['arch']。最后,我们返回结果 result

5. 运行代码并查看结果

现在,我们可以运行这段代码,并查看在 snap.qc 的笔记本页面上显示的看板视图。具体的运行代码的方式和结果展示请参考下面的示例代码:

if __name__ == '__main__':
    snap_qc = SnapQC.create({'name': 'Record 1', ...})
    snap_qc.get_data_from_mesin_produksi()
    view = snap_qc.fields_view_get(view_id=False, view_type='kanban')
    print(view['arch'])

示例代码的运行结果如下所示:

<kanban class="o_kanban_view o_kanban_mobile" default_group_by="" editable="bottom-right" js_class="kanban" limit="0" loop="0" quick_create="true"><templates><t t-name="kanban-box"><div class="oe_kanban_global_click o_kanban_record" draggable="false" style="..."><div class="oe_kanban_details"><strong>Record 1</strong></div></div></t></templates></kanban>

结论

通过上述步骤,我们可以从 data.mesin.produksi 获取数据,并将其显示在 snap.qc 的笔记本页面上的看板视图中。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程