MultiValueDictKeyError в Django при использовании ajax POST

-1

Я использую пост ajax, но получаю 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()),

Мой API-интерфейс для просмотра работает хорошо: нажмите, чтобы увидеть мой API-интерфейс, доступный для просмотра

отправить контент
{"product": {"id": 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 файле, получите MultiValueDictKeyError at/depotapp/API/cart/items/"'product'", пожалуйста, просмотрите сообщение об ошибке

Теги:

1 ответ

0

исправить его в views.py

id=request.data["product[id]"]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню