gpt4 book ai didi

django - InvalidOperation 在/orders/[]

转载 作者:行者123 更新时间:2023-12-01 15:24:34 26 4
gpt4 key购买 nike

我打算将交付成本添加到项目总价中,但它不起作用。两个字段都是Decimal但它抛出这个错误 InvalidOperation at /orders/ [<class 'decimal.ConversionSyntax'>] .这是交货价格模型

回溯

  File "/home//venv/lib/python3.7/site-packages/rest_framework/fields.py", line 1115, in to_representation
value = decimal.Decimal(str(value).strip())
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

模型.py

class DeliveryPrice(models.Model):
shipping_name = models.CharField(max_length=255, blank=True, null=True)
shipping_charge = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)

它是FKOrder模型。

序列化器.py

class OrderSerializer(serializers.ModelSerializer):
price_of_delivery = serializers.DecimalField(max_digits=10, decimal_places=2)

class Meta:
model = Order
fields = ['phone', 'address', 'price_of_delivery']

def create(self, validated_data):
price_of_delivery = validated_data.pop('price_of_delivery')
price_instance, created = DeliveryPrice.objects.get_or_create(shipping_charge=price_of_delivery)
order_instance = Order.objects.create(**validated_data, price_of_delivery=price_instance)
return order_instance

views.py

total_aggregated_dict = cart.aggregate(
total_price=Sum(F('quantity') * F('product__price'), output_field=DecimalField()))
print(total_aggregated_dict)
order_total = total_aggregated_dict['total_price']
delivery_price = self.request.data['price_of_delivery']
print(delivery_price)
final_total = Decimal(order_total) + Decimal(delivery_price)
print(final_total)
order = serializer.save(user=user, total_price=final_total)

这就是我到目前为止所尝试的所有内容。需要明确的是,首先,用户将产品添加到购物车,然后他们可以在填写订单字段(地址、电话号码等)时订购,他们还选择运费,并且该选择的运费应添加到总价中。但就我而言,它不起作用,我收到上面显示的错误。我该如何解决这个问题?有什么帮助吗?提前致谢!

最佳答案

已解决

我的错误在于序列化器,因为我将 price_of_delivery 设置为 DecimalField,并且在 View 中我也转换为 Decimal。我刚刚将 serializers.DecimalField 更改为 serializers.CharField 并且一切正常。

关于django - InvalidOperation 在/orders/[<class 'decimal.ConversionSyntax' >],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58832564/

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