簡體   English   中英

使用 PK 將 Django 反向到 url<int:pk>

[英]Have a django reverse to a url with PK <int:pk>

我正在按照教程設置使用 PayPal 付款

我的問題是 paypal_dict 因為它包含這個

paypal_dict = {
...
'return_url': 'http://{}{}/{}'.format(host,
                                           reverse('payment_done')),
...
}

並且我的 payment_done URL 需要有一個交易本身的 id,我不知道我怎么能在這個里面有一個 pk 這是我的完整 URLs.py

...
# Payment
    path('payment/process/<int:trade_id>/', payment_views.payment_process, name="payment_process"),
    path('payment/done/<int:trade_id>/', payment_views.payment_done, name="payment_done"),
...

我的全流程_paypal

def payment_process(request, trade_id):
    trade = get_object_or_404(Trade, id=trade_id)
    host = request.get_host()

    paypal_dict = {
        'business': settings.PAYPAL_RECEIVER_EMAIL,  # todo WHO TO PAY
        'amount': Decimal(trade.price),
        'item_name': trade.filename,
        'invoice': str(trade.id),
        'currency_code': 'USD',
        'notify_url': 'http://{}{}'.format(host,
                                           reverse('paypal-ipn')),
        'return_url': 'http://{}{}/{}'.format(host,
                                           reverse('payment_done')),
        'cancel_return': 'http://{}{}'.format(host,
                                              reverse('home')),
    }

    form = PayPalPaymentsForm(initial=paypal_dict)
    return render(request, 'payment/payment_process.html', {'trade': trade, 'form': form})

您可以使用argskwargs在您的網址中傳遞trade_id

paypal_dict = {
...
'return_url': 'http://{}{}'.format(host,
      reverse('payment_done', kwargs={'trade_id': trade.id})),
...
}

文檔參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM