postgresql - openerp 6 中的 Controller 文件..?

标签 postgresql odoo

<分区>

这几天我已经了解了 openerp 结构,我明白了,openerp 是 mvc。来自教程:

模型:Postgre 表

查看:XML 文件

Controller :OpenERP 的对象

让我仍然感到困惑的是,当我试图归档 Controller 文件在哪里时,我在模块 (sale) 中找到了一个文件,sale.py,我认为它是 Controller ,但是当我检查内部时文件,里面还有一个查询..

...

def _picked_rate(self, cr, uid, ids, name, arg, context=None):
    if not ids:
        return {}
    res = {}
    for id in ids:
        res[id] = [0.0, 0.0]
    cr.execute('''SELECT
            p.sale_id, sum(m.product_qty), mp.state as mp_state
        FROM
            stock_move m
        LEFT JOIN
            stock_picking p on (p.id=m.picking_id)
        LEFT JOIN
            procurement_order mp on (mp.move_id=m.id)
        WHERE
            p.sale_id IN %s GROUP BY mp.state, p.sale_id''', (tuple(ids),))

...

正如我从其他框架中了解到的,关于模型、 View 和 Controller 在不同的文件(CI、Yii 等)中是分开的。那么openerp呢? Controller 和模型呢?

最佳答案

Developer book 中的 MVC 架构描述告诉你“在 OpenERP 中,我们可以应用这个模型- View - Controller 语义”:

  • 模型:PostgreSQL 表。
  • View : View 在 OpenERP 的 XML 文件中定义。
  • controller : OpenERP 的对象。

sale.py 定义了对象和业务逻辑,所以它是 Controller 。但有时实现代码会绕过ORM,直接访问数据库,通过execute()方法运行SQL。这应该是异常(exception),因为正确的方法是通过 ORM 的 browse()方法。

另请注意,虽然模型组件由 PostgreSQL 表“托管”,但实际上它们是在 .py 文件中定义的。我会说 .py 文件定义了模型和 Controller 逻辑。

关于postgresql - openerp 6 中的 Controller 文件..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025306/

相关文章:

postgresql - 如何使用 SQL Join 获取数据

SQL 查询按具有低于阈值的内部连续距离的列的最大集进行分组

sql - 在 ST_Distance 中使用子查询

xpath - 如何在 Odoo 上找到 XPath?

XML Odoo 字段条件颜色格式

odoo - 报告 odoo 12 中的问题

python - 在OpenERP中使用RML动态生成报告

java - 尝试将 Hibernate 连接到 Postgres 时出错

postgresql - 在 postgres 和 Hibernate 中使用主键序列时出错

linux - 内部服务器错误odoo