如何解决将django反向链接到PK <int:pk>的URL
我正在按照REPL教程使用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"),...
我的完整process_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,'cancel_return': 'http://{}{}'.format(host,reverse('home')),}
form = PayPalPaymentsForm(initial=paypal_dict)
return render(request,'payment/payment_process.html',{'trade': trade,'form': form})
解决方法
您可以使用trade_id
或args
在网址中传递kwargs
。
paypal_dict = {
...
'return_url': 'http://{}{}'.format(host,reverse('payment_done',kwargs={'trade_id': trade.id})),...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。