从不同型号的odoo 9获取数据

Get data from different model odoo 9

是否可以在一个树视图中从例如加载数据。 (项目任务、项目问题、采购订单)创建日期 = 今天。

示例:

有什么简单的解决办法吗?

如果你想从一个单一的Model加载数据,那么你可以使用动作域来过滤。

如果您想从今天 create_date 所在的三个不同模型加载数据,您可以制作一个简单的模型,例如 view_mod 并将您想要查看的所有有趣字段放在那里,然后对于每个模型,您应该创建其相应的 view_mod 记录,然后您需要再次使用操作域进行过滤以查看今天创建的所有 view_mod 记录

如果您只想始终显示创建日期为今天的记录,您可以这样做。

1- 首先在后端使用树视图或任何视图,您应该为其创建一个且仅一个模型。

2- 当您需要在同一个树视图中显示多个模型时,或者我们可以说您想要显示查询结果时。

3- 创建一个在数据库中创建视图的模型,而不是 table 表示模型正在提取 来自数据库中视图(查询)的数据。

示例:参见模块 \addons\account\report\account_invoice_report.py

防止模型在数据库中创建 table。

    _name = 'view.name'
    _auto = False 

然后创建视图覆盖方法:

    # in odoo 10.0
    @api.model_cr
    def init(self):
        # drop the view first 
        tools.drop_view_if_exists(self.env.cr, self._table)

        # create the view.
        self.env.cr.execute("""CREATE or REPLACE VIEW %s as (
          you query here.
        )""" % self._table)

现在模型将从视图中提取数据希望这就是您想要的。

试试这个例子,return全部来自数据库:

在 .py 文件中添加以下代码:

class CustomReport(models.Model):
    _name = "my.report"
    _description = "my report"
    _auto = False


    name = fields.Char(string='Name', readonly=True)

    def init(self, cr):
        tools.drop_view_if_exists(cr, self._table)
        cr.execute("""CREATE or REPLACE VIEW my_report as 
                        SELECT
                        id,
                        concat(name,' | ', description) as name
                        from project_task 
                        UNION ALL 
                        SELECT 
                        id,
                        concat(name,' | ', amount_total) as name
                        from purchase_order
                        UNION ALL 
                        SELECT 
                        id,
                        concat(number,' | ', residual) as name 
                        from account_invoice
                        """)

在.xml文件中添加:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="view_my_report_tree" model="ir.ui.view">
        <field name="name">my.report.tree</field>
        <field name="model">my.report</field>
        <field name="arch" type="xml">
            <graph string="Name" type="bar">
                <field name="id" type="row" />
                <field name="name" type="row" />
            </graph>
        </field>
    </record>


    <record id="action_my_report" model="ir.actions.act_window">
        <field name="name">Name</field>
        <field name="res_model">my.report</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree</field>
    </record>

    <menuitem name="My report" action="action_my_report" id="menu_my_report"/>

</odoo>

结果: