我想在销售表格中选择产品后尽快获得价格。有一个销售形式,有价格,数量和产品领域。当用户选择产品时,该产品的价格应显示在价格的输入框中。为此,我使用了ajax。
但是我在sales / price / 2中找不到404页错误。什么时候 我在浏览器中输入该URL我得到的结果为{“price-pk”:2, “价格”:890.0}
代码
销售/ views.py
def fetch_price(request, pk):
response = {}
product = get_object_or_404(Product, pk=pk)
print('product',product)
if request.method=='GET':
price = product.price
print('price',price)
response['price-pk'] = product.pk
response['price'] = price
json_data = json.dumps(response)
return HttpResponse(json_data, content_type='application/json')
销售/ urls.py
url(r'^price/(?P<pk>\d+)$', views.fetch_price, name='fetch_price'),
add_sale.html
<script>
$('#id_product').on('change', function() {
price_id = $(this).val(); // if shoe is selected price_id value becomes 2 as pk of shoe is 2
console.log(price_id);
url = "/sale/price/"+price_id+"/";
$.ajax({
type:'GET',
url:url,
success: function(data){
console.log('price will be updated based on product selected');
$('#id_price').val(data.price);
}
})
});
</script>
答案 0 :(得分:2)
您的网址格式并不以斜杠结尾,但您的Ajax请求是针对以斜杠结尾的网址。修复一个或另一个;可能更好的一致性,以确保模式有斜线。
r'^price/(?P<pk>\d+)/$'