Python 无法获取django oscar的零售价

Python 无法获取django oscar的零售价,python,django,django-oscar,Python,Django,Django Oscar,我已经创建了一个母产品泰姬陵茶,其中我创建了其子产品泰姬陵茶1千克变体,并给出了价格(不含税)和零售价格,您可以在这张图中看到 但当我试图访问price对象时,我无法在其中获取零售价格属性。 以下是我的示例代码: 从oscar.core.load导入get\u类,get\u模型 来自oscar.apps.partner.strategy导入选择器 产品=获取型号(“目录”、“产品”) product=product.objects.filter(id=11).first() 策略=选择器()。

我已经创建了一个母产品泰姬陵茶,其中我创建了其子产品泰姬陵茶1千克变体,并给出了价格(不含税)和零售价格,您可以在这张图中看到

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

从oscar.core.load导入get\u类,get\u模型
来自oscar.apps.partner.strategy导入选择器
产品=获取型号(“目录”、“产品”)
product=product.objects.filter(id=11).first()
策略=选择器()。策略()
信息=策略。为产品(产品)获取
打印(信息价格)
输出:

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')})
>>策略=选择器().strategy()
>>>信息=策略。为产品(产品)获取
>>>信息
PurchaseInfo(价格=固定价格({'currency':'INR','excl_tax':十进制('400.00'),'tax':十进制('0.00')),可用性=,库存记录=)
>>>信息价格
固定价格({'currency':'INR','exc_tax':十进制('400.00'),'tax':十进制('0.00'))

任何帮助都会大受欢迎。

这是意料之中的,如果行为有点混乱的话。股票记录上的零售价格字段在奥斯卡的核心中没有任何地方使用——它只是作为一个数据字段存在,事实上在奥斯卡1.6中被弃用

默认策略(我猜是您正在使用的)只使用不含税的价格,这就是您所看到的

如果你想使用零售价,你需要提供你自己的策略类来实现这一点。请记住,该字段已被弃用,将来将从奥斯卡核心中删除

另请注意,您发布的代码实际上应该会失败并出现异常,因为这一行:

product = Product.objects.filter(id=11)
product
是。这种情况下,将不是
product
对象,而是queryset,它不是
策略的有效参数

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