【发布时间】:2020-11-12 08:08:29
【问题描述】:
我想更改报价单和订单中某些字段的默认值。我的意思是,如果我创建报价单,默认值为一个,如果我创建订单,则默认值为另一个值。我该怎么做?我认为quote和sale order共享sale.order模型。可以吗?
【问题讨论】:
标签: odoo
我想更改报价单和订单中某些字段的默认值。我的意思是,如果我创建报价单,默认值为一个,如果我创建订单,则默认值为另一个值。我该怎么做?我认为quote和sale order共享sale.order模型。可以吗?
【问题讨论】:
标签: odoo
您可以通过重写此函数来做到这一点:default_get() 或者您可以为声明中的字段设置默认值 default= your_value 希望对您有所帮助。
【讨论】:
您可以使用用于过滤订单报价的操作上下文值(或者您可以覆盖窗口操作并定义您的操作)。
例如,如果设置了上下文属性search_default_my_quotation,则当前记录为引用。
示例:
def _get_default_value(self):
if 'search_default_my_quotation' in self.env.context:
return 'Quotation'
else:
return "Order"
note = fields.Text(default=_get_default_value)
【讨论】:
报价和销售订单因阶段而异,毫无疑问两个模型(表)是相同的。
但对于用户友好的架构,他们需要将它们与阶段分开。
表示如果您有处于草稿阶段的报价,odoo 说它是报价,但如果报价得到确认,那么订单菜单中也会如此。
对于默认值,您可以使用default_get 方法在字段中传递默认值。
但是如果您需要单独报价和销售订单,请加上他们的一些条件,
例如:-
如果self.state in ['draft', 'sent']: 则将您的默认值放在字段中以供引用。
【讨论】: