Python 字段错误位于/shop/process_payment/无法解析关键字';id';到田野里去。选择包括:地址、金额、电子邮件、物品、姓名、订单号、电话

Python 字段错误位于/shop/process_payment/无法解析关键字';id';到田野里去。选择包括:地址、金额、电子邮件、物品、姓名、订单号、电话,python,django,django-paypal,Python,Django,Django Paypal,我正在使用Django 2.1.5和Python 3.5 我想添加贝宝支付网关集成到我的项目,但我 遇到此问题时,无法将关键字“id”解析为字段。选择 地址、金额等 def签出(请求): if request.method == "POST": items_json = request.POST.get('itemsjson', '') name = request.POST.get('name', '') amount = request.POST.g

我正在使用Django 2.1.5和Python 3.5

  • 我想添加贝宝支付网关集成到我的项目,但我 遇到此问题时,无法将关键字“id”解析为字段。选择 地址、金额等

    def签出(请求):

    if request.method == "POST":
    
        items_json = request.POST.get('itemsjson', '')
        name     = request.POST.get('name', '')
        amount     = request.POST.get('amount', '')
        email    = request.POST.get('email', '')
        address  = request.POST.get('address1', '') + " " + request.POST.get('address2', '')
        city     = request.POST.get('city', '')
        state    = request.POST.get('state', '')
        zip_code = request.POST.get('zip_code', '')
        phone    = request.POST.get('phone', '')
        order = Orders(items_json=items_json, name=name, amount=amount, email=email, address=address, city=city, state=state, zip_code=zip_code, phone=phone)
        order.save()
        update = OrderUpdate(order_id=order.order_id, update_desc="The order has been placed")
        update.save()
        thank = True
        id = order.order_id
        return redirect('process_payment')
    return render(request, 'shop/checkout.html', locals())
    
    order_id = request.session.get('order.order_id')
    order = get_object_or_404(Orders, id=order_id)
    host = request.get_host()
    
    paypal_dict = {
        'business': settings.PAYPAL_RECEIVER_EMAIL,
        'amount': str(amount),
        'item_name': name,
        'invoice': str(order.order_id),
        'currency_code': 'USD',
        "notify_url": request.build_absolute_uri(reverse('paypal-ipn')),
        "return": request.build_absolute_uri(reverse('payment_done')),
        "cancel_return": request.build_absolute_uri(reverse('payment_cancelled')),
    
  • def处理付款(请求):

    if request.method == "POST":
    
        items_json = request.POST.get('itemsjson', '')
        name     = request.POST.get('name', '')
        amount     = request.POST.get('amount', '')
        email    = request.POST.get('email', '')
        address  = request.POST.get('address1', '') + " " + request.POST.get('address2', '')
        city     = request.POST.get('city', '')
        state    = request.POST.get('state', '')
        zip_code = request.POST.get('zip_code', '')
        phone    = request.POST.get('phone', '')
        order = Orders(items_json=items_json, name=name, amount=amount, email=email, address=address, city=city, state=state, zip_code=zip_code, phone=phone)
        order.save()
        update = OrderUpdate(order_id=order.order_id, update_desc="The order has been placed")
        update.save()
        thank = True
        id = order.order_id
        return redirect('process_payment')
    return render(request, 'shop/checkout.html', locals())
    
    order_id = request.session.get('order.order_id')
    order = get_object_or_404(Orders, id=order_id)
    host = request.get_host()
    
    paypal_dict = {
        'business': settings.PAYPAL_RECEIVER_EMAIL,
        'amount': str(amount),
        'item_name': name,
        'invoice': str(order.order_id),
        'currency_code': 'USD',
        "notify_url": request.build_absolute_uri(reverse('paypal-ipn')),
        "return": request.build_absolute_uri(reverse('payment_done')),
        "cancel_return": request.build_absolute_uri(reverse('payment_cancelled')),
    
    }

    my models.py文件

    课程顺序(models.Model):

    类OrderUpdate(models.Model):


    如果订单模型的主键字段不是
    id
    ,请使用
    pk

    order = get_object_or_404(Orders, pk=order_id)
    

    你能添加你的整个错误信息吗,这样我就可以看到你在哪一行,在什么型号上得到这个错误。您的订单和订单更新模型。先生,我编辑我的问题页面未找到(404)请求方法:获取请求URL:先生,我使用了您的解决方案,但现在显示此错误确保订单id已保存为pk,然后检查会话中订单id的值是否与pk相同
    order = get_object_or_404(Orders, pk=order_id)