【发布时间】:2016-04-04 20:04:21
【问题描述】:
我正在使用 ajax 发布但得到 MultiValueDictKeyError。这是一个购物车,我可以通过点击这个项目来添加产品。
模型.py
class Product(models.Model):
title = models.CharField(max_length=100,unique=True)
description = models.TextField()
image_url = models.URLField(max_length=200)
price = models.DecimalField(max_digits=8,decimal_places=2)
class LineItem(models.Model):
product = models.ForeignKey(Product)
unit_price = models.DecimalField(max_digits=8,decimal_places=2)
quantity = models.IntegerField()
序列化器.py
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ('id',)
class LineItemSerializer(serializers.ModelSerializer):
product = ProductSerializer()
class Meta:
model = LineItem
fields = ('product', 'unit_price', 'quantity')
views.py
class RESTforCart(APIView):
def get(self, request, *args, **kwargs):
lists=request.session['cart'].items
serializer = LineItemSerializer(lists,many=True)
return Response(serializer.data)
def post(self, request, format=None):
id=request.data["product"]["id"]
product = Product.objects.get(id=id)
cart = request.session['cart']
cart.add_product(product)
request.session['cart'] = cart
lists=request.session['cart'].items
serializer = LineItemSerializer(lists,many=True)
return Response(serializer.data)
urls.py
(r'^API/cart/items/$', RESTforCart.as_view()),
我的可浏览 API 运行良好: Please click to see my browsable API
提交内容是
{
“产品”: {
“身份证”:1
},
"unit_price": "12.00",
“数量”:2
}
但是当我使用
$.post("/depotapp/API/cart/items/", { product: { id: 1 , }, unit_price: "12.00", quantity: 18, },function(data){ console.log(data);});
在我的 js 文件中,在 /depotapp/API/cart/items/ 处获取 MultiValueDictKeyError “'产品'” please click to review error message
【问题讨论】: