gpt4 book ai didi

python - 无法在 django oscar 中获得零售价

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:24 25 4
gpt4 key购买 nike

我创建了一个父产品 taj mahal tea,我在其中创建了它的子产品 taj mahal tea 1 kg 变体,并给出了价格(不含税)和零售价,您可以在这张图片中看到。

enter image description here

但是当我尝试访问价格对象时,我无法在其中获取零售价属性。这是我的示例代码:

from oscar.core.loading import get_class, get_model
from oscar.apps.partner.strategy import Selector

Product = get_model('catalogue', 'Product')
product = Product.objects.filter(id=11).first()
strategy = Selector().strategy()

info = strategy.fetch_for_product(product)
print(info.price)

输出:

FixedPrice({'currency': 'INR', 'excl_tax': Decimal('400.00'), 'tax': Decimal('0.00')})

这是我的测试代码及其输出:

>>> strategy = Selector().strategy()
>>> info = strategy.fetch_for_product(product)
>>> info
PurchaseInfo(price=FixedPrice({'currency': 'INR', 'excl_tax': Decimal('400.00'), 'tax': Decimal('0.00')}), availability=<oscar.apps.partner.availability.StockRequired object at 0x7f2db2324e80>, stockrecord=<StockRecord: Partner: Aapnik, product: Taj mahal 1 kg (xyz)>)
>>> info.price
FixedPrice({'currency': 'INR', 'excl_tax': Decimal('400.00'), 'tax': Decimal('0.00')})

我们将不胜感激任何帮助。

最佳答案

这是预料之中的,虽然有些令人困惑的行为。股票记录中的零售价字段未在 Oscar 的核心中使用 - 它只是作为数据字段存在,实际上在 Oscar 1.6 中已弃用。

默认策略(我猜这就是您正在使用的策略)仅使用价格排除。税,这就是你所看到的。

如果您想使用零售价,您需要提供自己的策略类来执行此操作。请记住,虽然该字段已弃用,但将来会从 Oscar 核心中删除。

在一个单独的注释中,您发布的代码实际上应该失败并出现异常,因为这一行:

product = Product.objects.filter(id=11)

product 在这种情况下不会是 Product 对象,而是 queryset,它不是 Strategy 的有效参数.fetch_for_product().

您可能想改为执行 Product.objects.get(id=11)

关于python - 无法在 django oscar 中获得零售价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56723930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com