2016-04-04 6 views
-1

私はajax投稿を使用していますが、MultiValueDictKeyErrorを取得しています。この商品をクリックすると商品を追加できるショッピングカートです。ajax POSTを使用する場合、DjangoのMultiValueDictKeyError

models.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() 

serializers.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()), 
{ "ID":1 }、 "UNIT_PRICE": "12.00"、 "数量":2 コンテンツは
{ "製品" である送信 Please click to see my browsable API

マイ閲覧APIはうまく機能します}

しかし、私は私のjsファイル内

$.post("/depotapp/API/cart/items/", { product: { id: 1 , }, unit_price: "12.00", quantity: 18, },function(data){ console.log(data);}); 

を使用して、/ depotapp/AでMultiValueDictKeyErrorを取得PI /カート/アイテム/ " '製品'" please click to review error message

答えて

0

はviews.py

id=request.data["product[id]"] 
でそれを修正
関連する問題