【问题标题】:MultiValueDictKeyError in Django when using ajax POST使用ajax POST时Django中的MultiValueDictKeyError
【发布时间】: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

【问题讨论】:

    标签: ajax django


    【解决方案1】:

    在views.py中修复它

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

    【讨论】:

      猜你喜欢
      • 2015-09-12
      • 1970-01-01
      • 2014-06-28
      • 2018-06-18
      • 2014-06-25
      • 2017-07-05
      • 1970-01-01
      • 2020-05-24
      • 2012-11-19
      相关资源
      最近更新 更多