【发布时间】:2020-03-19 17:30:26
【问题描述】:
我正在尝试将数据发布到我的 Django Rest Framework API,我有一个有效的 GET 请求。 POST 请求不起作用,并触发 AJAX 调用的错误函数。我似乎不明白为什么它不起作用,也许我的 CSRF 或 CORS 标头不正确?
main.js
$(function () {
var $items = $('#items');
var $description = $('#description');
var $price = $('#price');
$.ajax({
type: 'GET',
url: '/api',
success: function(items) {
console.log(items)
$.each(items,function(i, item){
$items.append('<li> '+ item.pk +', '+ item.Description +', '+ item.Price +'</li>');
});
},
error: function() {
alert('Error Loading Items');
}
});
$('#add-item').on('click', function() {
var order = {
description: $description.val(),
price: $price.val(),
};
$.ajax({
type: 'POST',
csrfmiddlewaretoken: "{{ csrf_token }}",
url: '127.0.0.1:8000/api/',
data: order,
success: function(newItem) {
$items.append('<li> '+ newItem.Description +', '+ newItem.Price +'</li>');
},
error: function() {
console.log(order)
}
});
});
});
models.py
class Item(models.Model):
Description = models.CharField(max_length=20)
Price = models.DecimalField(max_digits=5, decimal_places=2)
def __str__(self):
return self.Description
序列化器 Views.py
class ItemListAPIView(generics.ListCreateAPIView):
lookup_field = 'pk'
queryset = Item.objects.all()
serializer_class = ItemSerializer
permission_classes = (AllowAny,)
【问题讨论】:
标签: jquery django ajax api django-rest-framework