【问题标题】:Page not found (404) error on djangodjango上找不到页面(404)错误
【发布时间】:2017-01-04 14:53:54
【问题描述】:

我试图在销售表格中选择产品后立即获得价格价值。有一个销售表格,其中包含价格、数量和产品字段。当用户选择产品时,该产品的价格应显示在价格输入框中。为此,我使用了ajax。

但我收到一个错误,即在 sales/price/2 中找不到 404 页面。什么时候 我在浏览器中输入该 url 我得到的结果为 {"price-pk": 2, “价格”:890.0}

代码

sales/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')

sales/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>

【问题讨论】:

  • 对不起,我不明白那个“东西”是什么?
  • 查看您的 404。它显示 /sales/... 请注意单词末尾的 s。在您的代码中,您有 /sale/price。

标签: javascript python ajax django django-views


【解决方案1】:

您的 URL 模式不以斜杠结尾,但您的 Ajax 请求是针对以斜杠结尾的 URL。修复其中一个;可能更好地保持一致性以确保模式有斜线。

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

【讨论】:

  • 我犯了什么简单的错误?非常感谢。
猜你喜欢
  • 2018-09-12
  • 2013-12-04
  • 1970-01-01
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多