我使用“ product.pricelist”模型中的get_product_price_rule()函数。我的代码是:

price =  self._get_display_price(product)


错误日志是:

File "/odoo/addons/sale/models/sale.py", line 875, in _get_display_price
    final_price1, rule_id1 = self.order_id.pricelist_id.with_context(product_context).get_product_price_rule(product,self.product_uom_qty or 1.0, self.order_id.partner_id)
  File "/odoo/addons/product/models/product_pricelist.py", line 264, in get_product_price_rule
    self.ensure_one()
  File "/odoo/odoo/models.py", line 4844, in ensure_one
    raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: product.pricelist()


如何解决这个错误?
我的目标是获得产品展示价格。
我需要解决方案和建议。

最佳答案

您的问题似乎与销售订单上没有价目表有关,并且如错误所述,这是预期的单例值。通常,这与记录集中的一个以上值有关,但记录集中没有值的情况与预期相同。

因此,可以通过诸如if检查self.order_id上的pricelist_id值的方法来解决您的问题,或者您可以找到默认的public pricelist来使用它来计算产品价格,或者只是使用产品销售价格当self.order_id.pricelist_id没有值时

关于python - 引发ValueError(“期望的单例:%s”%self)ValueError:期望的单例:product.pricelist(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52286211/

10-12 14:15