javascript - 如何在 django 中使用 ajax 将 value 中的数量添加到购物车会话中?
问题描述
问题 当我单击添加到购物车按钮时,会触发 url cart_add 并将产品值添加到其中,但问题是未检索到数量表单值,因此产品实际上并未添加到购物车中。 我写的代码如下
脚本
$(document).on("click",".Id_submit",function(event){
event.preventDefault();
var selector = $(this).closest(".productID")
console.log(selector.find("form").attr('action'))
const form_data = {
csrfmiddlewaretoken: $('#transactionIDValue input[name="csrfmiddlewaretoken"]').val()
}
$.ajax({
type : 'POST',
url: selector.find("form").attr('action'),
data: form_data,
success: function()
{
alert("Product added to cart")
}
});
});
HTML
<form id='transactionIDValue' class="d-inline" method="post">
{{cart_product_form}}
{% csrf_token %}
<input type="submit" class="btn btn-primary shadow px-5 py-2 Id_submit" value="Add To Cart">
</form>
视图.py
@require_POST
@csrf_exempt
def cart_add(request, product_id):
cart = Cart(request)
product = get_object_or_404(transactions, id=product_id)
form = CartAddProductForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
print(cd)
cart.add(product=product, quantity=cd['quantity'])
else:
print('error')
print(cart)
# request.session['items_total'] = cart.product.count()
return HttpResponseRedirect(reverse('main:home'),'success')
ISSUE
现在,问题是当{{cart_product_form}}
被调用时,数量下降被设置到页面但是当我点击 add_to_cart 时,它的值没有添加到购物车中,所以我重新检查了它,甚至没有进入表单验证检查视图。任何人都可以帮助解决这个问题。这个问题仅在我使用 ajax 使用 add_cart 函数时出现,但如果我在没有 ajax 的情况下使用它,它就可以工作。我只想知道为什么 value from{{cart_product_form}}
没有传递到购物车。
解决方案
推荐阅读
- c# - 导出后使用 ClosedXML 时,Excel 图表在现有模板中不显示/丢失
- javascript - 从 Promise 中的数组中移除对象
- html - 标签无法正常工作(MVC、HTML)
- mysql - SQL timeStamp format is different on windows and ubuntu
- whois - 在 whois 命令中找不到注册人电子邮件?
- docusignapi - 我无法在 docusign 中授予假冒权限
- math - 3D 数学体积内的随机点
- django - 如何在每个文件的 Pylint 中获取运行时间
- java - 在java中并行处理数组
- c# - 读取从 clr 存储过程返回的值