Have no idea what I'm doing wrong - and I swear it was working a few hours ago.
urls.py:
urlpatterns = [
path('create', views.create, name='create'),
path('<int:bet_id>/', views.detail, name='detail'),
path('<int:bet_id>/wager/', views.wager, name='wager'),
]
this is the link the html template: a href ="{% url 'wager' bet.id %}"
views.py:
def wager(request, bet_id):
bet = get_object_or_404(Bet, pk=bet_id)
return render (request, 'bets/wager.html', {'bet':bet})
And here's the error (6 is the specific bet_id for this case)
NoReverseMatch at /bets/6/wager/
Reverse for 'wager' with no arguments not found. 1 pattern(s) tried: ['bets/(?P<bet_id>[0-9]+)/wager/$']
Use non overlapping pattern in url configuration
path('wage_list', views.list_view, name='wage_list'),
path('wage_detail/<int:bet_id>/', views.wage_detail_view, name='wage_detail_view'),
and call in your list view as follows, which will take you to detail view
{% for obj in wage_list %}
<a href="{% url 'wage_detail_view' bet_id=obj.id %}">
{% endfor %}
For me,
bet = get_object_or_404(Bet, pk=bet_id)
It sounds like that the primary key for yor Bet
object is named bet_id
. May you consider changing {% url 'wager' bet.id %}
to {% url 'wager' bet.bet_id %}
?
urls.py :
urlpatterns = [
path('create', views.create, name='create'),
path('<int:bet_id>/', views.detail, name='detail'),
path('wager/<int:pk>', views.wager, name='wager'),
]
views.py :
def wager(request, bet_id):
bet = get_object_or_404(Bet, pk=bet_id)
return render (request, 'bets/wager.html', {'bet':bet})
wager.html :
<a href ="{% url 'wager' bet.id %}">Something</a>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.