How to dynamically add new fields to a osv model depending on the number of records of another osv model in openerp? For example I have a model which is for planning purchases. I need to show total order qty that came in each shop.so i need to add new field each time a new record in sale.shop is created.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- 客户关系管理
- e-Commerce
- 会计
- 库存
- PoS
- 项目
- MRP
此问题已终结
3
回复
7387
查看
Use __init__ function of your class to dynamically add the sales shop to _columns.
class planning(osv.osv):
def __init__(self, pool, cr):
shop_ids = pool.get('sale.shop').search(cr,SUPERUSER_ID,[])
for shop in pool.get('sale.shop').browse(cr, SUPERUSER_ID,shop_ids):
self._columns['shop_qty_%s'%shop.id] = fields.float(
'%s Order Qty'%shop.name)
return super(planning,self).__init__(pool, cr)
This is impossible with the current osv model. And it is bad software design.
Better, add a new model: purchase_shop_quantity and make a one2many relation from your current model to the new one
| 相关帖文 | 回复 | 查看 | 活动 | |
|---|---|---|---|---|
|
|
3
5月 21
|
3688 | ||
|
|
0
5月 24
|
2479 | ||
|
|
0
10月 24
|
2010 | ||
|
|
2
9月 21
|
23874 | ||
|
|
0
12月 15
|
7011 |