django上找不到页面(404)错误

时间:2016-08-28 13:10:43

标签: javascript python ajax django django-views

我想在销售表格中选择产品后尽快获得价格。有一个销售形式,有价格,数量和产品领域。当用户选择产品时,该产品的价格应显示在价格的输入框中。为此,我使用了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>

1 个答案:

答案 0 :(得分:2)

您的网址格式并不以斜杠结尾,但您的Ajax请求是针对以斜杠结尾的网址。修复一个或另一个;可能更好的一致性,以确保模式有斜线。

r'^price/(?P<pk>\d+)/$'