【问题标题】:How to override a default value to a non default one如何将默认值覆盖为非默认值
【发布时间】:2021-05-30 12:26:32
【问题描述】:

我想将purchase.order 中的picking_type_id 值覆盖为非默认值。我试过这样做,但它不起作用:

_columns = {
    'picking_type_id': fields.many2one('stock.picking.type', 'Deliver To', help="This will determine picking type of incoming shipment", required=False, states={'confirmed': [('readonly', False)], 'approved': [('readonly', False)], 'done': [('readonly', True)]}),
} 
_defaults = {
    'picking_type_id': False
}

【问题讨论】:

  • 试试下面的链接:odoo.com/forum/help-1/…
  • 您确定您使用的是 Odoo 12 吗?您正在使用自 Odoo 10 以来不再可用的旧 API。

标签: python overriding odoo default odoo-12


【解决方案1】:

默认的picking_type_id 值来自窗口动作。您可以在stock_picking_views 文件中找到所有窗口操作。

使用default属性设置默认值,例如:

state = fields.Selection([
        ('draft','Draft'),
        ('open', 'Open'),
        ('in_payment', 'In Payment'),
        ('paid', 'Paid'),
        ('cancel', 'Cancelled'),
    ], string='Status', default='draft')

要覆盖默认值,无论它在哪里定义,您都可以重新定义default_get 方法。试试下面的代码:

class StockPicking(models.Model):
    _inherit = 'stock.picking'

    @api.model
    def default_get(self, fields_list):
        res = super(StockPicking, self).default_get(fields_list)
        res['picking_type_id'] = False
        return res

【讨论】:

  • 非常感谢,实际上问题出在我的 odoo 配置上,我有一个默认值 pick_type_id 一直在填充它
猜你喜欢
  • 2011-12-20
  • 1970-01-01
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-07
  • 2022-01-25
相关资源
最近更新 更多