【问题标题】:Load custom model and add a field to pos.order.line in Point of Sale - Odoo 12加载自定义模型并将字段添加到销售点中的 pos.order.line - Odoo 12
【发布时间】:2020-07-09 20:15:11
【问题描述】:

需要一个示例工作代码,以便我可以尝试更好地了解它在 Odoo 12 中的销售点应用程序上的工作原理。

我正在尝试向“pos.order.line”添加一个新的自定义字段以用于销售点应用程序,但我对 Odoo 12 pos 不满意。

这个新字段依赖于我创建的用于产品的新模型。 我将此字段添加到模型中,我需要在每个产品的每个 pos 订单行上自动填写它。

类似于“税收”,如果用户选择了一个产品,Odoo 会自动在 pos“订单行”上设置税收信息。

为了更好地理解,我将尝试重现我迄今为止完成的步骤。

1.新模型:对于本例,我将其称为“类型”。

此模型将填充“几种”类型并添加到我拥有的每个产品中。

class Types(models.Model):
    _name = 'types'
    _description = 'Sample Types Model'
    code = fields.Char('Code', required=True)
    name = fields.Char('Description', required=True)

2.这个“类型”信息将添加到我拥有的每个产品中,因此,我在“products.template”模型中添加了一个新字段:

class ProductTemplate(models.Model): 
    _inherit = "product.template"
    types_id = fields.Many2one('types', string='Product specific type') 

3. 因为我需要在每个 pos 订单行上显示此值,所以我使用相同的方法将该字段添加到“pos.order.line”模型:

class PosOrderLine(models.Model):
    _inherit = "pos.order.line"
    types_id = fields.Many2one('types', string='Product specific type')

4.问题从这里开始。

当产品添加到购物篮时,我需要加载新模型和添加到“product.template”的新字段,并在“pos.order.line”上为每个产品写入默认“类型”。

在 PoS 上我需要:

  • 加载新模型和字段;

  • 将订单添加到购物篮时将值写入 pos.order.line;

谁能帮帮我?

【问题讨论】:

    标签: javascript odoo-12 point-of-sale


    【解决方案1】:

    您可以将types_idrelated设置为product_id.product_tmpl_id.types_id,它会自动填充。

    class PosOrderLine(models.Model):
        _inherit = "pos.order.line"
    
        types_id = fields.Many2one(related='product_id.product_tmpl_id.types_id', 
                                   string='Product specific type')
    

    【讨论】:

    • 亲爱的@Kenly,非常感谢您的帮助。我不得不与你的代码斗争一段时间,直到我发现需要“store = True”。我是 Odoo 和主要是 point_of_sale (JavaScript) 的新手,如果您不介意,我会尝试将您包括在我未来的问题中。再次非常感谢您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2011-06-08
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多