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