【发布时间】:2016-09-06 04:11:33
【问题描述】:
我在 odoo9 工作。现在我需要一个允许用户选择合作伙伴并获取他的销售历史记录的视图。
现在我创建了一个模型“sale.history”,但它将所选数据保存为数据库中的记录。我真的不需要这个。
如何为此创建视图。
【问题讨论】:
标签: openerp odoo-8 odoo-9 odoo-view
我在 odoo9 工作。现在我需要一个允许用户选择合作伙伴并获取他的销售历史记录的视图。
现在我创建了一个模型“sale.history”,但它将所选数据保存为数据库中的记录。我真的不需要这个。
如何为此创建视图。
【问题讨论】:
标签: openerp odoo-8 odoo-9 odoo-view
对于此类视图/报告,您有两种选择。
使用TransientModel 代替Model 进行模型继承。数据库中的瞬态模型记录将被频繁运行的 cron 作业删除。电子邮件弹出/向导就是一个很好的例子。
为销售订单编写您自己的报告(数据库视图)。实际上已经有一份报告:报告/销售/销售分析。该报告的模型是sale.report,如果您想知道它是如何完成的。
【讨论】:
除了使用TransientModel(旧api)或AbstractModel(新api)...您可以简单地将字段的store属性设置为false,这样您的字段将永远不会被持久化到数据库中,它只是一个“视野”。
class sale_history(model.Model):
_name='sale.history'
partner = fields.Many2one('res.partner', store=False)
合作伙伴字段永远不会保存到数据库中
【讨论】:
您可以在模型中的字段上使用 store=False(如 danidee 建议的那样)。
您也可以覆盖模型上的 create 方法。
问题 - “sale.history”模型的目的是什么?如果它根本不存储任何数据,那么您最好针对“res.partner”创建一个新视图,而不是创建一个新模型。
【讨论】: