如何从一个模块访问另一个模块的数据库
how to access a database of one module from another module
我正在尝试在 openerp 中进行一些自定义。现在我只是想做一些从一个模块到另一个模块的数据流,但我完全糊涂了。请给出正确的指示来做这样的事情。
我有以下问题:
- 如何从一个模块访问另一个模块中的数据。
- 如何获取特定项目的数据(例如在销售中获取特定客户的销售发票数据。
- 使用循环如何使用这些全部来查找客户所有发票的总金额。
您的问题很笼统,因此很难准确回答您的需求,但总的来说:
1- 要从任何模型中获取记录,您必须先像这样将其合并,然后使用 ORM 函数(browse、read , ...) 从中获取数据:
obj = self.pool.get('my.model.name')
records = obj.browse(cr, uid, ids, context)
2- 要获取特定数据,您可以使用 search 和域来过滤数据:
#return ids where customer field equal to 1
res_ids = obj.search(cr, uid, [('customer','=', 1)], context)
#get records corresponding to res_ids
records = obj.browse(cr, uid, res_ids, context)
3- 要获得总金额,您可以这样做:
def get_total_amount(self, cr, uid, customer_id, context=None):
obj = self.pool.get('account.invoice')
ids = obj.search(cr, uid, [('partner_id', '=', customer_id)], context)
total = 0
for(rec in obj.browse(cr, uid, ids, context)):
total = total + rec.amount_total
return total
函数的参数和return可能会根据您需要使用它的地方进行更改。
我正在尝试在 openerp 中进行一些自定义。现在我只是想做一些从一个模块到另一个模块的数据流,但我完全糊涂了。请给出正确的指示来做这样的事情。
我有以下问题:
- 如何从一个模块访问另一个模块中的数据。
- 如何获取特定项目的数据(例如在销售中获取特定客户的销售发票数据。
- 使用循环如何使用这些全部来查找客户所有发票的总金额。
您的问题很笼统,因此很难准确回答您的需求,但总的来说:
1- 要从任何模型中获取记录,您必须先像这样将其合并,然后使用 ORM 函数(browse、read , ...) 从中获取数据:
obj = self.pool.get('my.model.name')
records = obj.browse(cr, uid, ids, context)
2- 要获取特定数据,您可以使用 search 和域来过滤数据:
#return ids where customer field equal to 1
res_ids = obj.search(cr, uid, [('customer','=', 1)], context)
#get records corresponding to res_ids
records = obj.browse(cr, uid, res_ids, context)
3- 要获得总金额,您可以这样做:
def get_total_amount(self, cr, uid, customer_id, context=None):
obj = self.pool.get('account.invoice')
ids = obj.search(cr, uid, [('partner_id', '=', customer_id)], context)
total = 0
for(rec in obj.browse(cr, uid, ids, context)):
total = total + rec.amount_total
return total
函数的参数和return可能会根据您需要使用它的地方进行更改。