根据销售报价单或订单odoo更改默认值

根据销售报价单或订单odoo更改默认值,odoo,Odoo,我想更改报价单和订单中某些字段的默认值。我的意思是,如果我创建报价单,默认值是一,如果我创建订单,默认值是另一个值。我该如何做?我认为报价单和销售订单共享sale.order模型。可能吗?您可以通过重写此函数来实现这一点:default\u get(),或者您可以在声明default=your\u值中为字段设置默认值 我希望这可能会对您有所帮助。您可以使用用于筛选订单报价的操作上下文值(或者您可以跳过窗口操作并定义您的操作) 例如,如果设置了上下文属性search\u default\u my\

我想更改报价单和订单中某些字段的默认值。我的意思是,如果我创建报价单,默认值是一,如果我创建订单,默认值是另一个值。我该如何做?我认为报价单和销售订单共享sale.order模型。可能吗?

您可以通过重写此函数来实现这一点:default\u get(),或者您可以在声明default=your\u值中为字段设置默认值
我希望这可能会对您有所帮助。

您可以使用用于筛选订单报价的操作上下文值(或者您可以跳过窗口操作并定义您的操作)

例如,如果设置了上下文属性
search\u default\u my\u quote
,则当前记录是一个引号

示例:


报价和销售订单因阶段不同而不同,毫无疑问,两种型号(表)是相同的

但是对于用户友好的架构,他们需要将它们与它的阶段分开

也就是说,如果你的报价单处于草稿阶段,你可以说它是报价单,但如果报价单得到确认,那么它也会出现在订单菜单中

对于默认值,您可以使用
default\u get
方法在字段中传递默认值。 但是如果你需要把报价单和销售订单分开,就要给他们一些条件, 例如:-
如果['draft','sent'中的
self.state:
然后在报价字段中输入默认值。

我想知道每个报价创建和销售订单创建的默认值是不同的。我想你的答案会得到相同的默认值。对不起,我不是很理解。你能解释更多吗?我不认为你可以在计算默认值时检查记录字段,因为该记录尚不存在。是否根据上下文成功设置默认值?
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)