我正在编写Ajax代码以访问数据库以编辑模型实例。但是代码运行不正常。第一个getColumnProperty(1, 'category')
语句确实有效,但其他alert
语句则无效。 alert
或success
中的代码不响应。一切似乎都很好。我不知道这是怎么发生的。
book / detail.html:
error
cart.view.py:
<script>
$(document).ready(function () {
$("#add").click(function() {
alert('clicked');
$.ajax({
url: '{% url "cart:add_to_cart" %}',
// handle a successful response
success: function (response) {
alert("Testing.");
("#cartButton").text("Cart" + "(" + response.quantity + ")");
},
error: function (response) {
alert('Got an error');
}
});
});
});
</script>
购物车网址:
def add_books(request):
c = Cart.objects.get(user=request.user)
q = request.GET.get('quantity')
book_id = request.GET.get('bookID')
<some code here>
response = {
'quantity': BooksInCart.objects.filter(cart=c).aggregate(item_quantity=Sum('quantity'))['item_quantity']
}
return JsonResponse(response)
答案 0 :(得分:0)
如果要更改数据库中的数据,则应使用后类型请求。在您的ajax调用中包含method: 'POST'
和csrf令牌,然后在您的视图中检查是否有post-type请求:
if request.method == 'POST':
要设置csrf令牌,请将{% csrf_token %}
放入模板中以呈现令牌,然后用户JQuery将令牌值加载到data
调用的ajax
部分中:
data = {'csrfmiddlewaretoken': $('[name="csrfmiddlewaretoken"]').val()}