Djangoでのエラーについて Reverse for '~' with no arguments not found. 1 pattern(s) tried: ['~']
解決したいこと
Reverse for 'pay' with no arguments not found. 1 pattern(s) tried: ['SellText/pay/(?P[0-9]+)$']
このようなエラーが出てしまいます。
urls.pyにはきちんとint:idをつけてあり、
htmlでも{% url '~' id %}と書いてあります。
発生している問題・エラー
Reverse for 'pay' with no arguments not found. 1 pattern(s) tried: ['SellText/pay/(?P<product_buy_id>[0-9]+)$']
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
views.py
class PayView(View):
# public_key = os.environ['PAYJP_PUBLIC_KEY']
payjp.api_key = os.environ['PAYJP_SECRET_KEY']
public_key =os.environ['PAYJP_PUBLIC_KEY']
print('1')
def get(self, request, product_buy_id):
print('2')
product = get_object_or_404(Product, id=product_buy_id)
print('3')
# amount=1000
amount=product.price
print(amount)
context ={
# 'amount':self.amount,
'amount':amount,
'public_key':self.public_key,
}
print('4')
return render(request,'pay.html',context)
def post(self, request,product_buy_id):
print('3')
product = get_object_or_404(Product, id=product_buy_id)
amount=product.price
customer = payjp.Customer.create(
email='example@pay.jp',
card = request.POST.get('payjp-token')
)
charge = payjp.Charge.create(
# amount=self.amount,
amount=amount,
currency='jpy',
customer=customer.id,
description='支払いテスト',
)
context ={
'amount':self.amount,
'public_key':self.public_key,
'charge':charge,
}
return render(request,'pay.html',context)
urls.py
path('buy_screen/<int:id>', views.buy_screen, name='buy_screen'),
path('pay/<int:product_buy_id>',views.PayView.as_view(),name='pay'),
pay.html
{% extends 'base.html' %}
{% block content %}
<br>
<br>
<main class="container">
<div class="row">
<div class="col-md-8 mb-4">
<h3 class ="bp-4 mb-4 font-italic border-bottom display-5">
決済ページ
</h3>
{% if charge %}
<p>ブランド: {{charge.card.brand}}</p>
<p>****-****-****-{{charge.card.last4}}</p>
{%endif%}
<form action="{% url 'SellText:pay' %}" method="post">
{% csrf_token %}
<article>
<label>1000円のお支払い</label>
</article>
<script type="text/javascript"
src="https://checkout.pay.jp"
class="payjp-button"
data-key="{{ public_key }}">
</script>
</form>
</div>
</div>
</main>
{% endblock %}
buy_screen.html
{% extends 'base.html' %}
{% block content %}
<style>
body{background-color:lightgray ;}
.container{background-color:white;}
</style>
<br>
<br>
<div class="container" >
<br>
<h1 class="text-center">購入内容の確認</h1>
<hr>
<div class="row">
<div class="col-md-4 col-sm-4 offset-sm-1 offset-md-1">
<img src={{ product_item.product_picture1.url }} style="height:100px;width:100px;" >
</div>
<div class="col-md-4 col-sm-4 ">
<h3 >{{product_item.product_name}}</h3><h3>{{product_item.price}} 円</h3>
</div>
</div>
<br>
<hr>
<div class="row">
<div class="col-md-4 col-sm-4 offset-sm-3 offset-md-3">
<h3>支払い金額</h3>
</div>
<div class="col-md-4 col-sm-4 ">
<h3>{{product_item.price}} 円</h3>
</div>
</div>
<br>
<hr>
<div class="row">
<div class="col-md-4 col-sm-4 offset-sm-3 offset-md-3">
<h3>受け取り場所</h3>
</div>
<div class="col-md-4 col-sm-4 ">
<h3>{{product_item.place}} </h3>
</div>
</div>
<br>
<hr>
<div class="row">
<div class="col-md-4 col-sm-4 offset-sm-3 offset-md-3">
<a href="{% url 'SellText:pay' product_buy_id=product_item.id %}"><h3>支払いページへ</h3></a>
</div>
<div class="col-md-4 col-sm-4 ">
</div>
</div>
</div>
<br>
<br>
{% endblock %}
自分で試したこと
htmlにprint関数を使い、どこまで処理が進んでいるかを確かめたところ、returnの前まできちんと処理されておりました。 1500というのは商品の値段であり、こちらも正しい値です。
どうぞよろしくお願い申し上げます。
0