odoo 模型map posgresql 视图

class AccountRoot(models.Model):
    _name = 'stock.all.package'
    _description = '显示所有箱子系统package和Lot package'
    _auto = False

    name = fields.Char('箱号')
    lot = fields.Char('标单号')
    create_date = fields.Datetime('装箱时间')
    quant_ids = fields.One2many('stock.quant','package_id', '箱内产品', readonly=True,
        domain=['|', ('quantity', '!=', 0), ('reserved_quantity', '!=', 0)])
    #保留ID号的原因是因为需要one2many字段的对应    
    def init(self):
        tools.drop_view_if_exists(self.env.cr, self._table)
        self.env.cr.execute('''
            CREATE OR REPLACE VIEW %s AS (
            SELECT id AS id,
                   print_box_name as name,
                   name as lot,
                   create_date
            FROM stock_quant_package WHERE active = TRUE
            UNION ALL
            SELECT ROW_NUMBER () OVER() -100000 AS id,
                   print_box_name AS name,
                   package_name as lot,
                   create_date
            FROM packing_info_package WHERE active = TRUE
            )''' % (self._table,)
        )

使用sql语句创建posgresql view,然后map模型到这个视图。这个视图就可以当做正常的视图,在odoo使用了。需要注意的是ID字段要唯一。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值