javascript - AJAX 数据未发布以在 Django 中查看
问题描述
我已经实现了一个基本的结帐,其中用户可以通过“地址”类从地址列表中选择一个送货地址。它适用于服务器端,但我想使用 AJAX 来避免每次选择都刷新页面。但是,该代码没有发布任何数据。我究竟做错了什么?
视图.py
def pick_address(request):
if request.method == 'POST':
checkout = Checkout.objects.get(pk=request.POST.get('checkout'))
checkout.shipping_address = ShippingAddress.objects.get(pk=request.POST.get('address'))
checkout.save()
return HttpResponse('success')
pick_address.js
<script>
$('.address').click(function () {
$.ajax({
type: 'POST',
url: '{% url 'pick-address' %}',
dataType:'json',
data: {
checkout: {{ checkout.pk }},
address: {{ address.pk }},
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success: function (data) {
if (data['success']) {
alert('success!');
}
}
});
});
</script>
解决方案
在views.py
def pick_address(request):
if request.method == 'POST':
checkout = Checkout.objects.get(pk=request.POST.get('checkout'))
checkout.shipping_address = ShippingAddress.objects.get(pk=request.POST.get('address'))
checkout.save()
ctx={'success':True}
return HttpResponse(json.dumps(ctx),content_type='application/json')
在pick_address.js
success: function (data) {
if (data.success) {
alert('success!');
}
}
推荐阅读
- android - Xamarin Firebase 消息缺少依赖项异常
- python - 将多个 json 文件附加在一起并使用 Python 输出 1 个 Avro 文件
- bash - Bash:为什么“查找”会返回不包含搜索词的“权限被拒绝”词?
- javascript - 在 MongoDB 文档中移动元素
- laravel - 当响应为 500 时,如何在 Laravel 中显示错误?
- angular - 使用 Angular 材质定义自定义主题时出现 SassError
- html - “步骤”属性不适用于本地日期时间
- python - Google Colab 中的 CUDA 内存不足
- machine-learning - 在可变大小的图像中检测固定大小的对象
- list - 如何跟踪列表中有多少项大于序言中的头元素